ubuntu16 中修改mysql5.7 my.cnf,踩的坑(1)(记)

字数 690阅读 729

修改了my.cnf放到/etc/mysql/目录下边之后,systemctl stop mysql 之后重启报错如下

Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.

systemctl status mysql.service 之后显示的

Aug  3 10:36:16 ubuntu systemd[1]: mysql.service: Control process exited, code=exited status=1

Aug  3 10:36:16 ubuntu systemd[1]: Failed to start MySQL Community Server.

Aug  3 10:36:16 ubuntu systemd[1]: mysql.service: Unit entered failed state.

Aug  3 10:36:16 ubuntu systemd[1]: mysql.service: Failed with result 'exit-code'.

Aug  3 10:36:16 ubuntu systemd[1]: mysql.service: Service hold-off time over, scheduling restart.

Aug  3 10:36:16 ubuntu systemd[1]: Stopped MySQL Community Server.

Aug  3 10:36:16 ubuntu systemd[1]: Starting MySQL Community Server..

这主要是因为修改了datadir的路径没有修改/etc/apparmor.d/usr.sbin.mysqld中datadir中的信息

apparmor控制了应用的目录访问权限,所以mysql是绕不开它的。修改“/etc/apparmor.d/usr.sbin.mysqld”文件。

将其中默认的data目录是:

/var/lib/mysql/ r,

/var/lib/mysql/** rwk,

把这两行修改为移动过的的实际的数据文件目录,例如:

/my data path/ r,

/my data path/** rwk,

保存,执行 service apparmor restart 重启apparmor服务。

systemctl restart apparmor

之后对mysql进行初始化

 mysql --initialize 

初始化之时可能会出现两个

1、can't find messagefile 'usr/local/mysql/share/english/errmsg.sys'.....Fatal error: Can't change to run as user 'mysql';Please check that the user

2、The innodb_system data file 'ibdata1' must be writable

对于错误1是因为没有指定正确的语言文件位置。需要在my.cnf中添加

[mysqld]

language =....    最好找到原来数据库的语言位置  如我的为/usr/share/mysql/english

对于错误2是因为指定的datadir 没有写权限

chown -R mysql:mysql  'your data path'

chmode -R 777 'your data path'

可能需要多次初始化才哪成功。每次初始化失败之后,再次初始化之前一定将datadir目录下的文件清空干净

rm  -rf  ib*

初始化成功之后,记录mysqld 生成的root首次登录的密码,之后可以重启mysql ,使用root账户登录,登录成功无法进一步操作,需要修改密码

alter user 'root'@'localhost' identified by 'your password'

备注:每次操作之后都可以在/var/log/mysql/error.log 看到mysql启动的日志

也可以查看ubuntu的系统日志/var/log/syslog


[Ubuntu修改MySQL默认数据库目录](http://lizhenliang.blog.51cto.com/7876557/1612778)

[Ubuntu16.04 配置mysql并修改存储路径的艰难之旅](http://blog.csdn.net/baiyufairy/article/details/70478611)

[MySQL5.1启动错误:Can’t find messagefile '..errmsg.sys'](http://blog.chinaunix.net/uid-9370128-id-271953.html)

推荐阅读更多精彩内容