在ArchLnix中搭建Docker mysql持久化学习环境

在ArchLnix中搭建Docker mysql持久化学习环境

0x1. Pull mysql镜像

Mysql 8.0访问机制出现改变,先使用5.7版本搭建学习环境

1
docker pull mysql:5.7

0x2. 启动Mysql

给root用户远程访问权限

1
docker run -it --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_ROOT_HOST=% -v /usr/local/docker/mysql/data:/var/lib/mysql -d mysql:5.7

-v参数:宿主机存储数据目录:容器数据目录

创建一个新用户并赋予远程访问权限

1
2
3
docker run -it --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password  -e MYSQL_USER=new_username 
-e MYSQL_PASSWORD=new_user_password
-e MYSQL_DATABASE=user_database -v /usr/local/docker/mysql/data:/var/lib/mysql -d mysql:5.7
预留测试8.0版本 0x3. 修改root权限及增加远程访问用户

进入docker镜像

1
docker exec -it mysql bash 

登陆mysql

1
2
3
mysql -u root -p -h 127.0.0.1 -P 3306
##注意:源镜像中未指定clinet用户使用sock连接,必须使用上述参数连接
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

添加远程登录用户

1
2
CREATE USER 'laocai'@'%' IDENTIFIED WITH mysql_native_password BY '123456!';
GRANT ALL PRIVILEGES ON *.* TO 'laocai'@'%';

)
~~

使用远程连接测试即可