1、在/home目錄下新建mysql目錄
mysql目錄中新建三個目錄:conf目錄、logs目錄、data目錄,建這些目錄的目的是用來掛載docker中的mysql下的目錄的。
結果如下:
1.1、然后在conf中寫一個mysql的配置文件my.cnf,里面就是配置一些端口號啊、用什么模式啊,內存開多大啊什么的
配置內容如下:這是我在網上復制過來的,配置內容限制了一些東西,也沒使用innodb引擎,根據自己需求配置
port= 3306 character-set-server=utf8 performance_schema_max_table_instances=200 table_definition_cache=200 table_open_cache=128 innodb=OFF default-storage-engine=MYISAM default-tmp-storage-engine=MYISAM loose-innodb-trx=0 loose-innodb-locks=0 loose-innodb-lock-waits=0 loose-innodb-cmp=0 loose-innodb-cmp-per-index=0 loose-innodb-cmp-per-index-reset=0 loose-innodb-cmp-reset=0 loose-innodb-cmpmem=0 loose-innodb-cmpmem-reset=0 loose-innodb-buffer-page=0 loose-innodb-buffer-page-lru=0 loose-innodb-buffer-pool-stats=0 loose-innodb-metrics=0 loose-innodb-ft-default-stopword=0 loose-innodb-ft-inserted=0 loose-innodb-ft-deleted=0 loose-innodb-ft-being-deleted=0 loose-innodb-ft-config=0 loose-innodb-ft-index-cache=0 loose-innodb-ft-index-table=0 loose-innodb-sys-tables=0 loose-innodb-sys-tablestats=0 loose-innodb-sys-indexes=0 loose-innodb-sys-columns=0 loose-innodb-sys-fields=0 loose-innodb-sys-foreign=0 loose-innodb-sys-foreign-cols=0 join_buffer_size = 64M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
2、然后使用docker下載mysql鏡像,並運行:
下載mysql5.6版本命令:docker pull mysql:5.6
查看下載好的mysql5.6數據庫:
2.1、運行mysql5.6容器:
docker run -p 3306:3306 --name mysql -v /home/mysql/conf/my.cnf:/etc/mysql/cnf.d -v /home/mysql/logs:/etc/mysql/logs -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6 c85b684385002b1ea64c61fe1ba5801d41a1d18afa03bb0c86495addc6cfb614
命令有點長,說下大概什么意思: docker run -p 3306:3306 --name mysql 意思就是運行mysql容器,指定本機端口3306映射到docker內部的3306端口,--name為起了個別名叫mysql,不起別名的話以后在docker里操作mysql這個容器就只能用容器id來操作 -v /home/mysql/conf/my.cnf:/etc/mysql/cnf.d 表示將之前新建的/home/mysql/conf目錄中的my.cnf配置文件掛載到mysql容器里的配置,其實就是替換掉,讓容器使用這個配置 -v /home/mysql/logs:/etc/mysql/logs 意思跟上面一個一樣,讓容器使用/home/mysql/logs這個目錄,不用自己默認的 -v /home/mysql/data:/var/lib/mysql 跟上面意思一樣 -e MYSQL_ROOT_PASSWORD=123456 初始化root用戶密碼 -d mysql:5.6 表示此容器后台程序運行
查看docker正在運行的容器:docker ps
可以看到mysql運行成功:
如果路徑沒有打錯的話,有可能會遇到這個報錯:我就遇到了,直接運行:yum update 命令后,重新運行mysql容器
3、mysql容器運行成功后,進入數據看看:
進入數據庫命令: docker exec -it c85b68438500 /bin/bash 輸入數據庫賬號密碼命令: mysql -uroot -p 進入數據庫后,執行sql代碼顯示當前所有數據庫:注意要加;號按回車 show databases;
=====================新加一個修改root密碼步驟:
linux進入數據庫,使用以下兩條命令修改root密碼:
1、使用mysql use mysql; 2、修改root密碼為654321 update user set password=passworD("654321") where user = 'root'; 3、刷新緩存
flush privileges;
4、退出mysql
exit
然后重進mysql,用修改后的密碼登錄就ok啦
==============數據庫安裝成功之后,連接數據庫=========================
如果用的是本機虛擬機,用數據庫操作工具連接不上的話,直接關閉虛擬機的防火牆就行了
我用的是阿里雲服務器,外網是直接連不上去的,要去配置一下安全組開放3306端口。
很簡單自行百度配置阿里雲服務器安全組開放端口