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
View Code

配置密码授权

没密码登录
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

 

  接下来使用即可

  

 

posted @ 2019-03-15 18:23  bjlhx15  阅读(2146)  评论(0编辑  收藏  举报
Copyright ©2011~2020 JD-李宏旭