场景:MySQL 数据库的数据文件默认安装的路径在/var/lib/mysql,但是实际中,我们在安装时常常就需要定制安装数据库路径,比如/data/mysql,或者/opt/mysql,通常是一个单独的一块盘或者分区,这样有利于性能调优和保护数据安全,同时也方便进行维护。
步骤:
Stop MySQL:
service mysql stopChange Data Directory:
// 新建文件夹用于存放数据,并把mysql默认的数据文件拷贝至此文件夹mkdir -p /datacp -rap /var/lib/mysql /data 或者 mv /var/lib/mysql /data// 改变新建文件夹的属主chown -R -v mysql:mysql /data/mysql// 现在编辑MySQL的默认配置文件/etc/my.cnf 修改datadir和socketvariable。vi /usr/my.cnfChange From: datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock Change To: datadir=/data/mysql socket=/data/mysql/mysql.sock为mysql.sock加连接:
// 比如说实际的mysql.sock在 /data/mysql/mysql.sock 下ln -s /data/mysql/mysql.sock /var/lib/mysql/mysql.sock;Start MySQL:
service mysql startQ&A:
Q:以下是mysql数据目录修改出现: ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ ,本例是将Mysql的数据目录移动到了/home/data/下,即mysql.sock所在的真实目录为/home/data/mysql/mysql.sock,mysql有tcp连接和socket连接方式,而上面这种错误一般是因为mysql是使用rpm方式安装的,它会自动寻找 /var/lib/mysql/mysql.sock 这个文件,是一种socket连接方式。
A:常见解决办法如下:
创建/修改文件 /etc/my.cnf文件,在[mysqld]上面添加:
[client]// passWord=your_passwordport=3306// 在这里写上你的mysql.sock的正确位置socket=/home/data/mysql/mysql.sock指定ip地址,使用tcp方式连接mysql,而不使用本地socket方式:
mysql -h127.0.0.1 -uuser -ppassword为 mysql.sock 加个连接,比如说实际的mysql.sock在 /home/data/mysql/ 下,则:
ln -s /home/data/mysql/mysql.sock /var/lib/mysql/mysql.sock新闻热点
疑难解答