在Docker内安装MySql

在Docker中安装MySql

1
2
3
4
5
6
7
docker run --name meekou-mysql ^
-e MYSQL_ROOT_PASSWORD=1qaz@WSX ^
-e MYSQL_USER=meekou ^
-e MYSQL_PASSWORD=1qaz@WSX ^
-v "/home/ec2-user/meekou/meekou-mysql:/var/lib/mysql" ^
-p 3306:3306 ^
-d mysql

错误消息处理

  • 提示不能连接

      - 检查端口是否指定
      - 检查volume设定是否正确
    
  • Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’

      - 指定`-h 127.0.0.1 `,如` mysql -h 127.0.0.1 -P 3306 -protocol=tcp -u root`
    
  • Authentication plugin ‘caching_sha2_password’ cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

      - Run `docker exec -it meekou-mysql mysql -u root -p`
      - Run `mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';FLUSH PRIVILEGES;`
    
  • cannot access ‘/docker-entrypoint-initdb.d/‘: Operation not permitted

    • 权限问题, 在run command 中添加--privileged,比如下面的命令
      1
      docker run --name meekou-mysql -e MYSQL_ROOT_PASSWORD=1qaz@WSX -e MYSQL_USER=meekou -e MYSQL_PASSWORD=1qaz@WSX -v "/home/ec2-user/meekou/meekou-mysql:/var/lib/mysql" -p 3306:3306 --privileged  -d mysql
  • Access denied for user

    • grant user permission with GRANT ALL PRIVILEGES ON *.* TO 'meekou'@'%' WITH GRANT OPTION;