linux环境下docker如何安装mysql?
首先需要进入docker hub官网查看所mysql的对应版本
链接: https://hub.docker.com/
这边有对应版本号,选择一个,此处我选择的是mysql:5.7
1、下载镜像文件
docker pull mysql:5.7
2、创建实例并启动
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
参数说明
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
①如果在此处创建实例报端口被占用错误,可以使用netstat -tanlp查看端口占用情况
然后 kill 1952 杀死该占用进程
②如果此处创建实例报,Error response from daemon: driver failed programming external connectivity on endpoint xxx ,涉及到docker启动底层机制,我们只需要重新启动就好
systemctl restart docker
接着继续重新执行创建实例代码
出现此处输出表示成功。
可检验一下
docker ps
3、通过navacat或者SQLyog等工具远程连接mysql
4、修改mysql字符编码
vi /mydata/mysql/conf/my.cnf
按o进入INSERT模式
将该代码插入.cnf文件中
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
之后,按Esc键,输入 :wq 保存退出即可
5、重启mysql
docker restart mysql
注意:解决 MySQL 连接慢的问题
在配置文件中加入如下,并重启 mysql
[mysqld]
skip-name-resolve
解释:
skip-name-resolve:跳过域名解析