通过Docker的方式安装mysql数据库,非常方便,屡试不爽,能够加快项目实施速度,经过测试,下面是比较好的做法。

1.拉取镜像

docker pull mysql/mysql-server:5.6

2.配置环境

mkdir /data/mysqlconf
vim /data/mysqlconf/my.cnf

添加以下内容:

[mysqld]
skip-host-cache
skip-name-resolve
datadir = /var/lib/mysql

init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci

[mysql]
default-character-set=utf8

[client]
default-character-set=utf8

3.运行容器

docker run -d --name mysql -v /data/mysql:/var/lib/mysql -v /data/mysqlconf:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6

说明:
1)数据映射:容器中的/var/lib/mysql到主机中/data/mysql。
2)配置映射:容器中的/etc/mysql/conf.d到主机中/data/mysqlconf,容器中的配置文件默认为/etc/mysql/my.cnf中,因为官方做了处理,在my.cnf做一些处理:包含了conf.d目录下面的所有.cnf的文件。所以可以把conf.d映射出来,然后自己可以在主机中修改数据库配置。
3)新的容器名字为mysql,root的密码为123456。
4)运行 docker ps -a 查看mysql容器是否正常运行,如果是“up..”,则正常,反之是“exit…”,说明运行错误。通过docker logs mysql 来查看日志。如果运行失败了,运行 docker rm -f mysql 删除后,检查在重试。

4.验证数据库

1)主机安装mysql客户端(若已经安装,可忽略)

apt-get install mysql-client

2)查看容器的IP,下一步要用

docker inspect mysql | grep 'IPAddress'

3)客户端登录

//172.17.0.2为容器的IP地址
mysql -h 172.17.0.2 -uroot -p
mysql-> use mysql;
mysql-> select user,host from user;

+——+———–+
| user | host |
+——+———–+
| root | % |
| root | localhost |
+——+———–+
2 rows in set (0.00 sec)

mysql> show variables like "%character%";show variables like "%collation%";

+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
8 rows in set (0.00 sec)

+———————-+—————–+
| Variable_name | Value |
+———————-+—————–+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+———————-+—————–+
3 rows in set (0.00 sec)

能看到以上结果,说明容器mysql安装OK。

5.其他

如新建一个测试数据库confluencedb:

docker run  --name mysql \
--network confluencenet \
-e 'MYSQL_ROOT_PASSWORD=verybigsecretrootpassword' \
-e 'MYSQL_DATABASE=confluencedb' \
-e 'MYSQL_USER=confluencedb' \
-e 'MYSQL_PASSWORD=jellyfish' \
-d mysql:5.6

参考Docker Hub:https://hub.docker.com/_/mysql/

发表评论

邮箱地址不会被公开。 必填项已用*标注