Docker MySQL
安装 MySQL 镜像
# docker pull mysql:5.7
运行 mysql
docker run --restart=always --privileged=true --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 --lower_case_table_names=1
参数说明:
--restart=always 跟随docker启动
--privileged=true 容器root用户享有主机root用户权限
-v 映射主机路径到容器
-e MYSQL_ROOT_PASSWORD=root 设置root用户密码
-d 后台启动
--lower_case_table_names=1 设置表名参数名等忽略大小写
进入mysql命令行
docker exec -it mysql bash //mysql是启动的服务name
登录
mysql -uroot -proot
授权远程登录
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
flush privileges;
修改mysqld.cnf
#如果没有vi命令
apt-get update
#更新源
apt-get install vim
查看mysql字符集
SHOW VARIABLES LIKE 'character_set_%';
SHOW VARIABLES LIKE 'collation_%';
设置外部访问编码
SET NAMES 'utf8';
修改mysql配置文件修改utf-8编码
mkdir docker
cp /etc/mysql/mysql.conf.d/mysqld.cnf /docker/mysqld.cnf
修改配置文件mysqld.cnf内容
[mysql]
default-character-set = utf8
[mysql_safe]
default-character-set = utf8
[client]
default-character-set = utf8
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
symbolic-links=0
init_connect = 'SET NAMES utf8'
character-set-server = utf8
collation-server = utf8_unicode_ci
将容器的配置文件覆盖回去
cp /docker/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf
重启容器
docker stop container_id
docker start container_id