Linux伺服器安裝Docker版redis/mysql
安裝Redis
1,
docker search redis
如下圖
2,下載官方版本
docker pull redis
3,啟動映象
docker run -p 6379:6379 -v $PWD/data:/data -d redis:latest redis-server --appendonly yes
命令說明:
-p 6379:6379 :將容器的6379埠對映到主機的6379埠
-v $PWD/data:/data :將主機中當前目錄下的data掛載到容器的/data
redis-server --appendonly yes :在容器執行redis-server啟動命令,並開啟redis持久化配置
4,檢視容器 docker ps -a 如下圖
如果沒有正常啟動,輸入docker logs 容器ID 檢視日誌,若提示無許可權,可以在啟動命令中新增--privileged=true,如:
docker run -p 6379:6379 --privileged=true -v $PWD/data:/data -d redis:latest redis-server --appendonly yes
5,檢視容器啟動日誌
docker logs b3b297dc1fc3
6,訪問redis
docker exec -it b3b297dc1fc3 /bin/bash
然後輸入 redis-cli
安裝MySQL
1,docker search mysql 如下圖:
找到官方版本
2,docker pull docker.io/mysql 拉取映象,如下圖:
3,啟動:
docker run -p 3306:3306 --name mysql -v /mountData/mysql/conf:/etc/mysql/conf.d -v /mountData/mysql/logs:/logs -v /mountData/mysql/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d docker.io/mysql
4,docker ps -a 檢視容器,如下圖:
以上是安裝MySQL官方版本的docker映象,是最新的,已經到了8.0
以前安裝的舊版本如5.7的資料庫使用這個版本可能會出錯,
如連結錯誤,提示caching_sha2_password could not be loaded
解決方法:
進入到容器:docker exec -it 容器ID /bin/bash
進入到MySQL:mysql -uroot -p123456
修改密碼:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
重新連結就可以了
但是我自己的專案執行的時候提示create connection error jdbc://localhost:3306...
感覺像是連不上資料庫,但是報錯又是報biginteger無法轉換為long,弄半天沒弄好
還是用了阿里5.7的MySQL映象,專案正常執行
阿里的MySQL映象
docker pull registry.cn-hangzhou.aliyuncs.com/acs-sample/mysql:5.7
如下圖:
然後再按照上面的命令run起來就可以了
注意:這裡會有個時間對不上的問題,就是容器與宿主機的時間對不上,可能會導致一些專案出問題
這裡使用共享宿主機的時間來修改這個問題:
新增-v引數 -
v
/etc/localtime
:
/etc/localtime
:ro,
修改後的啟動命令:
docker run -p 3306:3306 --name mysql -v /mountData/mysql/conf:/etc/mysql/conf.d -v /mountData/mysql/logs:/logs -v /mountData/mysql/data:/mysql_data -v /etc/localtime:/etc/localtime:ro -e MYSQL_ROOT_PASSWORD=123456 -d docker.io/mysql
Mysql only_full_group_by解決:
set GLOBAL sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION ';
再附上不使用docker安裝MySQL的流程:
1. 首先進入本機的原始檔目錄
cd /usr/local/src
2. 使用wget下載官方yum源的rpm包:
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
3. 安裝rpm包:
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
4. 再次使用yum來安裝mysql-server:
yum install -y mysql-server
可以看到這次不再提示安裝Mariadb了
5. 安裝完成後,啟動mysqld服務:
systemctl start mysqld
檢視是否成功啟動:
ps aux|grep mysqld
6. 設定mysqld服務開機自啟動:
systemctl enable mysqld
7. 使用初始密碼登入
由於MySQL從5.7開始不允許首次安裝後,使用空密碼進行登入,系統會隨機生成一個密碼以供管理員首次登入使用,這個密碼記錄在/var/log/mysqld.log檔案中,使用下面的命令可以檢視此密碼:
cat /var/log/mysqld.log|grep 'A temporary password'
2017-11-12T13:35:37.013617Z 1 [Note] A temporary password is generated for [email protected]: bkv,dy,)o7Ss
最後一行冒號後面的部分bkv,dy,)o7Ss
就是初始密碼。
使用此密碼登入MySQL:
mysql -u root -p
8. 更改預設密碼:
切換資料庫:
use mysql;
修改root
密碼:
alter user 'root'@'localhost' identified by 'your_password';
將your_password
替換成你自己的密碼就可以了,當然,這個密碼是強密碼,要求密碼包含大小寫字母、數字及標點符號,長度應該在6位以上。
如果不想要這個強密碼校驗,修改2個引數即可:
set global validate_password_policy=0;
set global validate_password_length=1;