mysql:5.5.46(docker) 安装时的报错记录

目录

Docker:离线安装运行容器报错:container_linux.go:345: starting container process caused

在启动MySQL时报:[ERROR] Fatal error: Please read “Security” section of the manual to find out how to run mysqld as root!

/docker/logs/erorr3888.log文件要先创建

登陆不进去

参考文章 


本来我一直使用的是5.7.27版本,但由于此create8使用了比较老的5.5.46,造成诸多问题,一一记录,方便后续

Docker:离线安装运行容器报错:container_linux.go:345: starting container process caused

docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: 
starting container process caused "process_linux.go:430: 
container init caused \"write /proc/self/attr/keycreate: permission denied\"": unknown.
 

2. 报错原因
“write /proc/self/attr/keycreate: permission denied”

翻译:表示文件没有写入权限,访问被拒绝。

拒绝原因:linux的系统安全性使用selinux控制,selinux会控制用户可以访问、读取、修改哪些文件,比如,前面的write /proc/self/attr/keycreate文件没有权限,就是被selinux控制。

3. selinux三种模式
1. enforcing :强制模式; 代表SELinux在运行中, 且已经开始限制domain/type之间的验证关系。

2. permissive :宽容模式; 代表SELinux在运行中, 不过不会限制domain/type之间的验证关系, 即使验证不正确, 进程仍可以对文件进行操作, 不过如果验证不正确会发出警告。

3. disables :关闭模式; SELinux并没有实际运行。

4. 解决方法
修改​​/etc/selinux​​下的​​config​​文件中的​​SELINUX​​属性改为​​disabled​​
 

在启动MySQL时报:[ERROR] Fatal error: Please read “Security” section of the manual to find out how to run mysqld as root!

解决办法有三种:
第一种:使用root用户启动,命令:

service mysqld start --user=root

由于使用的是docker,修改配置文件

user=mysql
1
第二种:使用非root用户启动,修改my.cnf文件:

进入文件:vim /etc/my.cnf
在[mysqld]下输入内容:user=mysql
1
2
以上两种都不对时,使用第三种:

检查在/etc/init.d目录下是否存在mysqld文件,如果存在直接删掉就可以了,如果不想删,使用mv命令换一个名字,名字任意起。

/docker/logs/erorr3888.log文件要先创建

登陆不进去

docker exec -it mysql3888 bash

mysql -uroot

 grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;

flush privileges;

然后

mysql -uroot -prooot -P3888 -h127.0.0.1

就可以了。

参考文章 

https://blog.csdn.net/huo_wa/article/details/117550307

(30条消息) Fatal error: Please read “Security“ section of the manual to find out how to run mysqld as root_火娃ღ的博客-CSDN博客

https://blog.51cto.com/u_12835254/5551728 

你可能感兴趣的:(数据库,服务器,运维)