step1:
? ? 先停掉服務(wù)
? ? service mysqld stop
step2:
? ? 修改mysql配置文件
? ? vim /etc/my.cnf
? ? 把其中的datadir=/var/lib/mysql/ 和socket=/var/lib/mysql/mysql.sock
? ? 改成datadir=/newpath/ 和datadir=/newpath/mysql.sock
????newpath換成你自己的存放數(shù)據(jù)的路徑
step3:
????啟動mysql服務(wù)
? ??service mysqld start
配置基本完成趾断,但是可能會出現(xiàn)以下問題:
????可能會報錯:Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and ????"journalctl -xe" for details.
????可以按照提示命令去查看錯誤信息,但是你會發(fā)現(xiàn)里面提供的信息基本沒什么參考價值隘世,這個時候可以打開mysql的日志文件
? ??vim?/var/log/mysqld.log
????shift + g 翻到最后
????可能會看到這個關(guān)鍵信息 Could not create unix socket lock file /data/part1/dbdata/mysql.sock.lock
????查閱之后發(fā)現(xiàn)可能是權(quán)限問題撑螺,這里就把你自己的newpath權(quán)限設(shè)置一下篱蝇,最暴力的方法是就是改成777
? ??chmod -R 777 newpath
????再重啟mysql
? ??service mysqld restart
????能正常啟動了
????但是當你嘗試連接myqsl?
? ??mysql -uroot -p
????又出現(xiàn)一個錯誤:
????Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
????明明配置文件里面已經(jīng)把mysql.sock文件的路徑改掉了凳枝,這里面還是指向老的路徑沪铭,為什么呢?我不知道髓迎,大概是修改的my.cnf里面的配置是? ?給mysql的server端識別的旱易,而你連接mysql的收禁偎,你是client端腿堤,client端還是只認老的路徑。通過查看這個文章找到了答案如暖,在my.cnf文件里面加上[client]
????socket=/data/part1/dbdata/mysql.sock
????加在最后就行笆檀。保存重啟mysql,問題完美解決盒至。