?必须提前上传my.cnf文件到/data/conf目录?并且它与window中的配置文件my.ini后缀名是不一样
?数据保存到宿主机中,下次需要的时候重启容器,原有数据都能被加载,不会丢失数据
参数说明:
-p 3306:3306:宿主机端口:容器端口
-name mysql:容器名字
-v:挂载宿主机的一个目录, 持久化存储的关键所在,将主机目录挂载到容器对应目录,分别是:配置文件、日志文件、数据文件
-v /data/mysql/conf:/etc/mysql/conf.d
-v /data/mysql/logs:/logs
-v /data/mysql/data:/var/lib/mysq
--privileged=true:使用该参数,container内的root拥有真正的root权限,
否则,container内的root只是外部的一个普通用户权限
--restart=always:容器自动启动参数,其值可以为[no,on-failure,always]
no为默认值,表示容器退出时,docker不自动重启容器
on-failure表示,若容器的退出状态非0,则docker自动重启容器,
??? 可以指定重启次数,若超过指定次数未能启动容器则放弃
?always表示,只要容器退出,则docker将自动重启容器
?-e MYSQL_ROOT_PASSWORD=123456:设置root的密码
?-d mysql/mysql-server:5.7:后台启动模式及使用的镜像?
、
附录一:linux中使用命令导入导出数据
1.导出数据库
?1.导出数据和表结构:
?mysqldump?-u?用户名?-p?密码?数据库名?>?数据库名.sql
?mysqldump?-u?root?-p?dbname?>?dbname?.sql
?敲回车后会提示输入密码?
?2.只导出表结构
?mysqldump?-u?用户名?-p?密码?-d?数据库名?>?数据库名.sql
?mysqldump?-u?root?-p?-d?dbname?>?dbname?.sql
?敲回车后会提示输入密码
2.导入数据库
?1.首先建空数据库
?mysql>create?database?dbname?;
?2.导入数据库
?方法一:
?1.选择数据库
?mysql>use?dbname?;
?2.设置数据库编码
?mysql>set?names?utf8;
?3.导入数据(注意sql文件的路径)
?mysql>source?/home/xxxx/dbname?.sql;
?方法二:
?mysql?-u?用户名?-p密码?数据库名?<?数据库名.sql
附录二:修改mysql允许远程连接
#通过这个命令进入容器内
docker?exec?-it?mysql5.7?bash
#连接mysql
mysql?-u?root?-p
#修改mysql允许远程连接
GRANT?ALL?PRIVILEGES?ON?.?TO?'root'@'%'?WITH?GRANT?OPTION
FLUSH?PRIVILEGES
systemctk?status?firewalld