1. mysql的安装
docker pull mysql #直接执行,会下载最新版本的mysql
docker pull mysql:8.0.16 #可以指定版本号
2. 在本地创建文件夹
找一个合适的文件夹,创建下面这些文件夹以及文件
创建文件夹:mkdir -p /usr/mysql/conf /usr/mysql/data /usr/mysql/logs /usr/mysql/mysql-files
创建文件:vim /usr/mysql/conf/my.cnf
my.cnf文件的内容
[client]
default-character-set=utf8mb4
[mysqld]
datadir = /usr/mysql/data
character_set_server=utf8mb4
collation_server=utf8mb4_bin
lower_case_table_names=1
secure-file-priv=NULL
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
3. 指定创建的mysql文件夹的权限
chmod -R 755 /usr/mysql
4. 创建自己的mysql容器
docker run -p 3306:3306 --name mysql --restart=unless-stopped -d -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/mysql/data:/var/lib/mysql -v /usr/mysql/logs:/logs -v /usr/mysql/mysql-files:/var/lib/mysql-files -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=123456 mysql
红框标注的字段代表要创建的镜像容器,如果不搭配版本号,默认就是最新版的;如果想拉取mysql指定版本号的:只需[mysql:8.0.16] 加上版本号即可
5. 查看mysql-docker容器的id
docker ps
6. 进入mysql容器
docker exec -it 容器id bash
或者
docker exec -it 容器id /bin/bash
7. 设置远程连接
mysql -uroot -p
use mysql
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';
flush privileges;
解释说明:
-
-p 端口映射
-
--restart unless-stopped 设置 开机后自动重启容器
-
-v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf 挂载配置文件
-
-v /usr/mysql/logs:/logs \ 挂载日志
-
-v /usr/mysql/data:/var/lib/mysql \ 挂载数据文件 持久化到主机
-
-v /usr/mysql/mysql-files:/var/lib/mysql-files MySQL8之后需要同步这个文件夹
-
-v /etc/localtime:/etc/localtime 容器时间与宿主机同步
-
-e MYSQL_ROOT_PASSWORD=123456 设置密码
-
-d 后台启动,mysql
7.2:如果远程连接失败报错,可以换一个命令重新尝试;
//使用数据库
use mysql;
//修改密码
ALTER USER USER() IDENTIFIED BY '123456';
//刷新
flush privileges;
//开启MySQL远程访问权限 允许远程连接
update user set host = '%' where user = 'root';
8.配置mysql开机自启
//设置开机启动
mysql systemctl enable mysqld.service
//检查是否已经安装了开机自动启动
systemctl list-unit-files | grep mysqld
//开启服务
systemctl start mysqld.service
9.刷新权限(记得加引号)
flush privileges;
10.阿里云服务器配置Mysql端口
进入到阿里云云服务器管理控制台,点击安全组
点击管理规则
添加要开放的端口号
快速添加的页面,点击mysql(3306)即可
手动添加的操作:
这样就可以连接自己阿里云上的mysql了