docker run 安装mysql 8
1、拉取镜像
docker pull mysql
默认拉取最新版本的镜像
2、启动容器
docker run -d -p 3306:3306 --privileged=true -v F:\docker\mysql\data:/var/lib/mysql -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123456 --restart=always --name mysql mysql:latest
参数说明
-name 给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器
-p 映射端口,将docker宿主机的3306端口和容器的3306端口进行绑定
-v 挂载文件用的(/var/lib/mysql 是mysql的数据目录)
-e TZ=Asia/Shanghai 设置时区
-e MYSQL_ROOT_PASSWORD=123456 设置root默认密码
3、问题解决
-
连接mysql的时候报这个错误。
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (111)解决方法如下
首先进入容器。 ###cd到mysqld文件夹下,命令如下: cd /var/run/mysqld/ ls查看一下,会看到这几个文件:mysqld.pid mysqld.sock mysqld.sock.lock 将mysqld.sock删除或者移动到别的位置。 然后执行命令: /etc/init.d/mysql start 注:如果你的/etc/init.d文件件下是 mysqld 那么执行: /etc/init.d/mysqld start 启动成功。 如果还不好使,在删除/var/run/mysqld文件夹下的mysqld.sock后先登录一下myql: mysql -u root -p 会出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 然后再执行命令: /etc/init.d/mysql start
- 连接mysql的时候报这个错误
client does not support authentication protocol requested by server;consider upgrading MySQL client
首先通过命令行登录mysql服务
mysql -u root -p
切换数据库到mysql
use mysql;
修改密码并指定密码保存格式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
到这一步,如果还不能解决,那么再重新授权一下
grant all privileges on *.* to 'root' @'%' with grant option;