docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
上述初始化了docker容器(自动拉取镜像),指定了端口为3306,容器名为mysql,密码为root,mysql镜像版本为5.7,另外设配置了容器的挂载
容器路径
Linux路径
日志目录
/var/log/mysql
/mydata/mysql/log
数据文档存储目录
/var/lib/mysql
/mydata/mysql/data
配置目录
/etc/mysql
/mydata/mysql/conf
# 查看最终生成的docker容器
docker inspect mysql
安装后可单独进入docker容器操作命令行
# docker start mysql #如果容器停止了,可以使用此命令启动容器
# 进入mysql容器的命令行操作窗口
docker exec -it mysql bash
# 进入后即可使用命令行连接进入
mysql -h localhost -u root -p # 之后输入密码,即可进入熟悉的mysql命令行
# 允许远程访问
# grant all privileges 为所授予权限
# *.* 为指定哪些数据库的哪些表 database.table 结构
#'root'@'%'为将权限赋予谁,root为登陆账户名,@后面为限制的主机,可以为IP、IP段、域名、以及 %, %表示任何地方(有些版本中不包含localhost,需单独添加)
# identified by'123456'指定密码为123456
# with grant option 表示该用户有权限将已拥有的权限授权给其他人
grant all privileges on *.* to'root'@'%' identified by '123456'with grant option;
# 刷新权限
flush privileges;
# 成功后退出mysql
exit
# 退出mysql容器
exit
关闭mysql容器
docker stop mysql
启动mysql容器
docker start mysql
重启mysql容器
docker restart mysql
默认情况下mysql在Linux下区分大小写,即 lower_case_table_names = 0,此时需要修改值为1
在 /mydata/mysql/conf 下新增 my.cnf 文件,vim进入编辑填入内容为,之后保存退出即可
[mysqld]
user=mysql
lower_case_table_names=1
重启mysql容器即可。
如果启动异常,可用 docker logs mysql 命令查看异常信息。
配置后验证配置
usemysql
show variableslike 'lower_case_table_names';