- 镜像查询
docker search mysql
- 下拉镜像
docker pull mysql
- 启动镜像
docker run -p 3306:3306 --name mysql --privileged=true --restart unless-stopped -v /opt/mysql_docker/mysql:/etc/mysql -v /opt/mysql_docker/logs:/logs -v /opt/mysql_docker/data:/var/lib/mysql -v /opt/mysql_docker/localtime -v /opt/mysql_docker/mysql-files:/var/lib/mysql-files/ -e MYSQL_ROOT_PASSWORD=123456 -d mysql
注意-v /opt/mysql_docker/mysql-files:/var/lib/mysql-files/
不然会报错docker mysql mysqld: Error on realpath() on '/var/lib/mysql-files' No such file or directory - **可通过log日志查看mysql相关问题问题
docker logs mysql
- 参数说明
--privileged=true 挂载文件权限设置
--restart unless-stopped 设置 开机后自动重启容器
-v /opt/mysql_docker/mysql:/etc/mysql 挂载配置文件
-v /opt/mysql_docker/logs:/logs \ 挂载日志
-v /opt/mysql_docker/data:/var/lib/mysql \ 挂载数据文件 持久化到主机,
-v /etc/localtime:/etc/localtime 容器时间与宿主机同步
-e MYSQL_ROOT_PASSWORD=123456 设置密码
-d mysql 后台启动,mysql
查看是否启动成功
docker ps -a
-
阿里云配置
保证阿里云开放了3306这个端口
-
mysql远程登录授权
- docker exec -it mysql bash
- 登录mysql
mysql -uroot -p
create user 'xx'@'%' identified by 'xx';
GRANT ALL PRIVILEGES ON *.* TO 'xx'@'%';
FLUSH PRIVILEGES;
-
navicate远程连接报错无法连接 远程访问用户的验证方式改为:
msyql_native_password
- 注意:
Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation
问题- MySQL8版本中新增了一个system_user帐户类型,当我们新增一个用户test,并用root用户对test进行密码修改的操作时,系统不会报错
- 当alter 修改msyql_native_password方式时候报错,原因是由于root用户没有SYSTEM_USER权限
grant system_user on *.* to 'root';
ALTER USER 'xx'@'%' IDENTIFIED WITH mysql_native_password BY '123456'
flush privileges;
- 注意:
连接成功 参考链接https://blog.csdn.net/fyj13925475957/article/details/108146968