51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Docker安装MySql

1. 拉取镜像 {#1.-%E6%8B%89%E5%8F%96%E9%95%9C%E5%83%8F}

# 拉取mysql镜像
docker pull mysql
# 查看镜像是否拉取成功
docker images

2. 创建持久化数据文件夹 {#2.-%E5%88%9B%E5%BB%BA%E6%8C%81%E4%B9%85%E5%8C%96%E6%95%B0%E6%8D%AE%E6%96%87%E4%BB%B6%E5%A4%B9}

# 挑选一个你感兴趣的目录
cd /home
# 创建一个你喜欢的目录
mkdir docker
cd docker
# 创建你喜欢的mysql持久化文件夹目录
mkdir mysql

3. 启动mysql容器 {#3.-%E5%90%AF%E5%8A%A8mysql%E5%AE%B9%E5%99%A8}

#MYSQL_ROOT_PASSWORD即为数据库登录密码
docker run -d --restart=always --name mysq-8.0 -p 5831:3306  -e MYSQL_ROOT_PASSWORD=Yt,6JhDEoaTZVFAm -v /home/docker/mysql:/var/lib/mysql mysql --lower_case_table_names=1

4. 进入容器开启远程配置 {#4.-%E8%BF%9B%E5%85%A5%E5%AE%B9%E5%99%A8%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E9%85%8D%E7%BD%AE}

# 查看运行的容器Id
docker ps
#找到mysql的容器ID
docker exec -it 容器ID /bin/bash
#登录mysql
mysql -uroot -p
mysql> use mysql;
mysql> select user,host from user;
#增加远程登录权限
mysql> update user set host='%' where user='root';
#修改mysql的plugin,使用mysql_native_password
mysql> alter user root@'%' identified with mysql_native_password by '你要设置的密码';
mysql> exit;

5. 防火墙开放端口 {#5.-%E9%98%B2%E7%81%AB%E5%A2%99%E5%BC%80%E6%94%BE%E7%AB%AF%E5%8F%A3}

如果你是云服务器,想要开放端口,请在安全组中设置

#开放5831端口
firewall-cmd --zone=public --add-port=5831/tcp --permanent
#防火墙服务重启,以便加载新开放的端口
systemctl restart firewalld.service

6. 开放远程访问 {#6.-%E5%BC%80%E6%94%BE%E8%BF%9C%E7%A8%8B%E8%AE%BF%E9%97%AE}

8.0版本以前

# 使用用户名密码登录 mysql
mysql - uroot - p
# 切换至 mysql 数据库
USE mysql; 
# 假设你的用户名为 root ,密码是 12345678,那么以上语句允许 IP 为 114.114.114.114 的用户登录至数据库。
GRANT ALL PRIVILEGES ON *.* TO root 114.114.114.114 IDENTIFIED BY "12345678" WITH GRANT OPTION;
# 使更改生效
FLUSH PRIVILEGES;

8.0以后

# 使用用户名密码登录 mysql
mysql - uroot - p
# 切换至 mysql 数据库
USE mysql; 
# 更新域属性,'%'表示允许所有外部 IP 访问数据库。
update user set host='%' where user ='root';
# 授权语句,授权 root 用户使用任意 IP 访问数据库。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
# 使更改生效
FLUSH PRIVILEGES;

赞(1)
未经允许不得转载:工具盒子 » Docker安装MySql