docker 安装mysql 和挂载
仓库位置:
https://hub.docker.com/_/mysql/
安装的同时挂载data资料卷和config 配置的资料卷刀磁盘上
docker run -d -p 3306:3306 \
-e MYSQL_USER="soaeon" \
-e MYSQL_PASSWORD="#Liu123456" \
-e MYSQL_ROOT_PASSWORD="#Liu123456" \
--name mysql01 -v /docker/mysql/config/my.cnf:/etc/my.cnf -v /docker/mysql/data:/var/lib/mysql mysql/mysql-server:5.7
你听我解释呀!
- -d 是后台运行
- -e(environment)MYSQL_USER 指定用户
- -e(environment)MYSQL_PASSWORD 指定用户的密码
- -e(environment)MYSQL_ROOT_PASSWORD 指定root用户的密码
- --name mysql01 指定容器的名字是mysql01 对应的镜像文件是mysql/sql-server:5.7
- -v 挂载文件的地址:文件实际所在的地址
/docker/mysql/config/my.cnf 一定要先创建起来 my.cnf 内容如下:
[mysqld]
user=mysql
/docker/mysql/data 这个文件夹也要先创建起来, 而且这个文件夹必须是个空的哟
docker容器相关的操作命令
docker ps 查看运行中的容器
docker ps -a 查看全部的容器
docker images 查看所有的镜像
docker start mysql01 启动msyql01 容器
docker logs mysql01 查看mysql01容器的logs
docker stop mysql01 停止mysql01容器
docker restart mysql01 重启mysql01容器
docker rm mysql01 删除容器 mysql01
docker rmi images_id 删除镜像images_id
mysql 配置
PS:如果安装的过程中没有指定MYSQL_ROOT_PASSWORD的话, 我们需要去logs 中查看默认的密码哟
操作过程如下:
执行命令: docker logs mysql01 ,如果没没有: [Entrypoint] GENERATED ROOT PASSWORD选项,执行以下操作
- 进入容器的bash环境 docker exec -it mysql01 bash
- 登陆mysql mysql -uroot -p
- 输入密码 , 但是我们不知道密码是啥呀 那就直接回车吧
- 退出吧 exit
- 再次查看日志 docker logs mysql01 生成初始密码了 呃呃呃呃呃
进入mysql的 bash环境:
docker exec -it mysql01(容器名字) bash
查询账号:
select user ,host from user;
update user set authentication_string=password('#Liu123456') where user='root';
新增一个账户, 并赋予远程登陆的权限:
CREATE USER 'root'@'%' IDENTIFIED BY '#Liu123456';
grant all privileges on *.* to 'root'@'%' identified by '#Liu123456' with grant option;
flush privileges;
查看mysql的默认字符集:
show variables like '%charac%';
mysql> show variables like '%charac%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
推出mysql的bash环境:
mysql> exit
Bye
bash-4.2# exit
exit
[root@host /]#
修改挂载资料卷下的my.cnf文件中的字符集(退出bash环境,使用vi命令):
[root@host /]# vi docker/mysql/config/my.cnf
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server = utf8_unicode_ci
user=mysql
docker 中安装mysql 文档
大爷们拿去吧
https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/docker-mysql-more-topics.html