007-docker-安装-mysql:5.6
1、搜索镜像
docker search mysql
2、拉取合适镜像
docker pull mysql:5.6
docker images
3、使用镜像
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
命令说明:
-
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-
-v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
-
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
-
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
个人使用:【推荐】
3.1、首先启动docker下的mysql【查看配置】
docker run -p 53306:3306 --name mymysql56 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
进入docker 容器内
docker exec -it mymysql bash
此时mysql的链接信息
Host: 127.0.0.1 Port: 3306 UserName: root Password: 123456
mysql常用命令
连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与用户名之间不用加空格,密码也一样,若不写-h地址参数,则默认是连接本地地址) 断开:exit (回车) 创建授权:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\" 修改密码:mysqladmin -u用户名 -p旧密码 password 新密码 删除授权: revoke select,insert,update,delete om *.* fromtest2@localhost; 显示数据库:show databases; 显示数据表:show tables; 显示表结构:describe 表名; 创建库:create database 库名; 删除库:drop database 库名; 使用库:use 库名; 创建表:create table 表名 (字段设定列表); 删除表:drop table 表名; 修改表:alter table t1 rename t2 查询表:select * from 表名; 清空表:delete from 表名; 备份表: mysqlbinmysqldump -h(ip) -uroot -p(password) databasenametablename > tablename.sql 恢复表: mysqlbinmysql -h(ip) -uroot -p(password) databasenametablename < tablename.sql(操作前先把原来表删除) 增加列:ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADDINDEX (c); 修改列:ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b cCHAR(20); 删除列:ALTER TABLE t2 DROP COLUMN c; 备份数据库:mysql\bin\mysqldump -h(ip) -uroot -p(password) databasename> database.sql 恢复数据库:mysql\bin\mysql -h(ip) -uroot -p(password) databasename< database.sql 复制数据库:mysql\bin\mysqldump --all-databases >all-databases.sql 修复数据库:mysqlcheck -A -o -uroot -p54safer 文本数据导入: load data local infile \"文件名\" into table 表名; 数据导入导出:mysql\bin\mysqlimport database tables.txt
配置密码授权
没密码登录 mysql -uroot; 1、查找用户名和密码 select * from mysql.user; 用户名是:root 密码是:MD5加密过的动态码,无法破解。 2、设置 方法1: 用SET PASSWORD命令 首先登录MySQL。 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:mysql> set password for root@% = password('PMT2b4xoCcJOgTz0'); 方法2:用mysqladmin 格式:mysqladmin -u用户名 -p旧密码 password 新密码 例子:mysqladmin -uroot -p123456 password 123 方法3:用UPDATE直接编辑user表 首先登录MySQL。 mysql> use mysql; mysql> update user set password=password('123') where user='root' and host='localhost'; mysql> flush privileges; 登录; mysql -uroot -p123; 查看端口 入mysql后,输入命令:show global variables like 'port'; 报错:Host '192.168.162.16' is not allowed to connect to this MySQL server use mysql; select host from user where user='root'; 可以看到当前主机配置信息为localhost. 执行 update user set host = '%' where user ='root' and host='localhost'; 将Host设置为通配符%。 Host修改完成后记得执行 flush privileges; 使配置立即生效。
针对docker mysql image 5.6版本:配置文件位于:/etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql #log-error = /var/log/mysql/error.log # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0
可以看到数据目录:/var/lib/mysql
3.2、删除此版本mysql实例
docker rm -f mymysql56
3.3、定制化启动容器【定制化】
配置共享目录:Perferences→File Sharing,增加对应的映射目录,即可
docker run -d -p 53306:3306 -v /Users/lihongxu6/docker/mymysql56/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -v /Users/lihongxu6/docker/mymysql56/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -v /Users/lihongxu6/docker/mymysql56/slow_log/slow.log:/var/log/mysql/slow.log --name mymysql56 mysql:5.6
接下来使用即可