一、搜索鏡像mysql
docker search mysql
二、拉取合適鏡像sql
docker pull mysql:5.6
docker imagesdocker
三、使用鏡像數據庫
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
命令說明:bash
-p 3306:3306:將容器的 3306 端口映射到主機的 3306 端口。socket
-v $PWD/conf:/etc/mysql/conf.d:將主機當前目錄下的 conf/my.cnf 掛載到容器的 /etc/mysql/my.cnf。ide
-v $PWD/logs:/logs:將主機當前目錄下的 logs 目錄掛載到容器的 /logs。this
-v $PWD/data:/var/lib/mysql :將主機當前目錄下的data目錄掛載到容器的 /var/lib/mysql 。加密
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用戶的密碼。spa
我的使用:【推薦】
3.一、首先啓動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.二、刪除此版本mysql實例
docker rm -f mymysql56
配置共享目錄: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
接下來使用便可