Docker Centos安装Mysql5.6
之前一篇随笔《Docker Centos安装Openssh》 写的是如何在基础的centos镜像中搭建ssh服务,在此基础上再搭建其他服务。本文继续介绍在centos_ssh基础上搭建mysql服务。
1、启动centos_sshd镜像
# docker run --net=host -d registry:5000/centos-sshd-222:v1.0 /run.sh
这里用的是host模式连接的网络,启动之后即可通过ssh登录到容器内部,装上mysql之后可以直接重启容器来验证是否成功。
2、安装mysql
# yum install wget -y # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm # rpm -ivh mysql-community-release-el7-5.noarch.rpm # yum install mysql-community-server
3、配置
# mysql_install_db --user=mysql --ldata=/var/lib/mysql
4、开启mysql
# mysqld_safe
5、配置root用户密码、赋予root远程连接权限
再开一个终端,进入mysql,执行如下命令:
# mysql -u root mysql> UPDATE mysql.user SET Password = PASSWORD('123456') WHERE User = 'root'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; mysql> flush privileges;
6、更改mysql配置,使服务忽略大小写、以utf8传输等
# vi /etc/my.cnf # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html [client] default-character-set=utf8 [mysqld] # # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M lower_case_table_names=1 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql max_allowed_packet=20M # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 character-set-server=utf8 init_connect='SET NAMES utf8' sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysql] default-character-set=utf8 # Disabling symbolic-links is recommended to prevent assorted security risks #symbolic-links=0 # Recommended in standard MySQL setup #sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
7、更改启动脚本
[root@localhost /]# vi /run.sh #!/bin/bash mkdir /var/run/mysqld chgrp mysql /var/run/mysqld/ chmod g+w /var/run/mysqld/ /usr/sbin/sshd mysqld_safe
8、重启容器
[root@localhost home]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9766bd087945 registry:5000/centos-sshd-222:v1.0 "/run.sh" 38 minutes ago Up 36 seconds hopeful_hawking [root@localhost home]# docker restart 9766bd087945 9766bd087945
9、验证mysql,在其余安装了mysql的服务器上执行:
[root@localhost home]# mysql -u root -p123456 -h192.168.31.203 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.6.25 MySQL Community Server (GPL) Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> exit Bye [root@localhost home]# mysql -u root -p123456 -h192.168.31.203 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.6.25 MySQL Community Server (GPL) Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.00 sec) mysql>
10、提交至docker镜像,该步骤在《Docker Centos安装Openssh》中提到过,敬请移步至该文章。