我用rpm包安装的mysql,默认数据目录为/var/lib/mysql,安装完成后,我将数据目录移到了/usr/local/mysql/data下数据库正常启动,本机用mysql客户端工具也没问题可是我写了个程序,调用mysql_real_connect连接DB时出错了,提示找不到/var/lib/mysql/mysql.sockmy.cnf中的mysql.sock的位置都已改到了/tmp/mysql.sock,也重启了DB用mysql_config查看,socket仍然是/var/lib/mysql/mysql.sock为什么?怎样才能完全的改掉/var/lib/mysql/mysql.sock到/tmp/mysql.sock
我在/var/lib/mysql/做了符号链接到/tmp/mysql.sock就可以了我知道在mysql_real_connect中可以指定socket,但是我不想这样
有没有什么办法?
我在/var/lib/mysql/做了符号链接到/tmp/mysql.sock就可以了我知道在mysql_real_connect中可以指定socket,但是我不想这样
有没有什么办法?
mysqld进程如下:/usr/sbin/mysqld --basedir=/ --datadir=/usr/local/mysql/data --user=mysql --pid-file=/usr/local/mysql/data/RFSIM.pid --skip-external-locking --port=3306 --socket=/tmp/mysql.sock
你把mysql_real_connect函数中的host连接串改成 localhost;mysql_socket=/tmp/mysql.sock 就可以了2>如果你的应用是PHP代码程序,修改 /etc/php5/apache2/php.ini[MYSQL]
mysql.default_port = 3306
mysql.default_socket = /tmp/mysql.sock这样就OK了
你需要做的是改mysql的配置文件。一般是这个/etc/my.cnf,如果没有可以自己从源码包里拷一个过来cp support-files/my-medium.cnf /etc/my.cnf。
关键是修改这个文件时要注意:一般人都只改了
[mysqld]
datadir=/tmp
socket=/tmp/mysql.sock
但还应该要改
[client]
socket=/tmp/mysql.sock
。client这个字段千万别忘了,如果没有就自己加。不然就会出现楼主所遇到的情况。