本文简单演示下docker方式安装mysql。
拉取镜像
https://hub.docker.com/_/mysql
docker pull mysql:5.7.26
或者:docker pull registry.cn-chengdu.aliyuncs.com/qzcsbj/mysql:v5.7.26
运行容器
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d registry.cn-chengdu.aliyuncs.com/qzcsbj/mysql:v5.7.26
-e,Set environment variables,表示指定运行时环境变量,设置密码为123456
查看mysql容器:docker ps |grep mysql
进入容器:docker exec -it mysql /bin/bash
本地连接数据库
mysql -u root -p123456
查看字符集
show create database mysql;
show variables like '%character%';
字符集不是utf8,我们需要做修改。
修改配置文件
创建挂载目录
[root@k8s-master01 ~]# mkdir -p /mysql/conf
[root@k8s-master01 ~]# mkdir -p /mysql/data
[root@k8s-master01 ~]# mkdir -p /mysql/logs
mysql.cnf引入了另外两个目录
两个目录的内容
第一个目录中配置文件内容
第二个目录中配置文件内容
上面配置文件中可以看到(也可以搜索:find / -name "*mysql*",有通配符需要加引号)
数据目录:/var/lib/mysql/
日志目录:/var/log/mysql/
配置目录:/etc/mysql/mysql.conf.d/
也可以这样查看数据目录
自带的mysql数据库有user.frm:find / -name "user.frm"
红框中是数据库,所以数据目录是:/var/lib/mysql
复制容器中配置文件到本机:docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf /mysql/conf/
修改配置文件:vim mysqld.cnf
这里只修改编码
在 [mysqld] 前添加如下配置:
[client] default-character-set=utf8
在 [mysqld] 后添加如下配置:
character-set-server=utf8
重新运行容器
删除之前的容器:docker rm -f mysql
重新运行:
--name mysql \
-p 3306:3306 \
-v /mysql/conf:/etc/mysql/mysql.conf.d/ \
-v /mysql/data:/var/lib/mysql/ \
-v /mysql/logs:/var/log/mysql/ \
-e MYSQL_ROOT_PASSWORD=123456 \
-d registry.cn-chengdu.aliyuncs.com/qzcsbj/mysql:v5.7.26
本地连接
下面可以看到字符集已经改为utf8
show create database mysql;
show variables like '%character%';
如果只是服务端加了utf8,结果就是下面这样:
远程连接
cmd中连接
需要本机中安装了mysql,否则会提示没有mysql命令
mysql -u root -p -h 192.168.117.171