docker安装mysql且自定义端口

测试环境数据库没有建表权限,自己学习的时候也麻烦,有服务器就直接用服务器安装mysql,使用起来也相对比本地搭建方便。

环境:阿里云 Centos7

docker 安装不同云服务器可参考不同服务器的安装教程,各家云服务器的帮助文档里都有超详细的docker安装步骤,不再叙述。镜像加速推荐使用网易云的,阿里云的自己的加速我个人用起来不是很快。

Centos7 镜像加速设置

vi /etc/docker/daemon.json

插入模式输入

{
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

mysql 5.7 安装

  • 拉取images
docker pull mysql:5.7

  • 配置文件
mkdir -p  自定义目录/conf.d

增加并修改配置文件config-file.cnf

内容如下,设置表名不区分大小写; linux下默认是区分的,windows下默认不区分

[mysqld]
# 表名不区分大小写
lower_case_table_names=1 
#server-id=1
datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysqlx.sock
#symbolic-links=0
# sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

  • 启动
# 增加数据映射文件夹
mkdir -p  上面自定义的文件夹/var/lib/mysql

设置数据库连接默认密码 grassroadsZ,端口1234


docker run --name mysql \
    --restart=always \
    -p 1234:3306 \
    -v 自定义的文件夹/conf.d:/etc/mysql/conf.d \
    -v 自定义的文件夹/var/lib/mysql:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=grassroadsZ \
    -d mysql:5.7

启动后如果没有报错。使用netstat -anp | grep 1234 确认端口1234被监听。

下图为docker 图形化管理工具的监听。

file

安装教程https://blog.csdn.net/u011781521/article/details/80469804

Tips:

-p 指定端口映射,格式为外网访问端口:docker的container的端口 (我被折磨了好几次,因为端口是反的,所以启动了但是未映射出来导致外网连接不上)
-name 自定义的container的名字

笔记

关于Centos 7 防火墙设置:

# 1、查看firewall服务状态

systemctl status firewalld
# 2、查看firewall的状态

firewall-cmd --state

# 3、开启、重启、关闭、firewalld.service服务

# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop

# 4、查看防火墙规则

firewall-cmd --list-all 

# 5、查询、开放、关闭端口

# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp

#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

--permanent:表示设置为持久;
--add-port:标识添加的端口;

ssh重启报错或者无法重启-Failed to restart ssh.service: Unit not found

1.修改了sshd_config文件之后需要重启sshd,准备执行一下命令进行重启:

/etc/init.d/ssh restart
2.发现这个路劲底下根本没有ssh,尝试以下命令:

# sudo service ssh restart
Redirecting to /bin/systemctl restart ssh.service
Failed to restart ssh.service: Unit not found.
出现以下错误

Failed to restart ssh.service: Unit not found.
3.原因:以上命令都是centos6里面的命令,在centos7需要用:

systemctl restart sshd

本文由grassroadsZ首发于公众号下钻上长

你可能感兴趣的:(测试进阶爬坑之路,docker,知识积累)