查看mysql的安裝路徑,mysql一鍵安裝腳本

1、安裝 MySQL

1.1、拉取mysql

docker pull mysql:5.7

1.2、啟動mysql

docker run -p 3306:3306 –name mysql

-v /mydata/mysql/log:/var/log/mysql

-v /mydata/mysql/data:/var/lib/mysql

-v /mydata/mysql/conf:/etc/mysql

-e MYSQL_ROOT_PASSWORD=root

-d mysql:5.7

參數說明

-p 3306:3306 將容器的3306端口映射到主機的3306端口,3306是和宿主機的通信接口,所有docker內部容器的連接使用3306接口,集群配置需連接容器內部3306端口,故最好保持前後端口一致

–name mysql 容器名字

-v
/mydata/mysql/log:/var/log/mysql 將配置文件夾掛載到主機

-v
/mydata/mysql/data:/var/lib/mysql 將日誌文件夾掛載到主機

-v
/mydata/mysql/conf:/etc/mysql 將配置文件夾掛載到主機

-e MYSQL_ROOT_PASSWORD=root 初始化 root 用戶的密碼

-d mysql:5.7 以守護進程方式啟動 mysql:5.7 鏡像

1.3. 查看啟動是否成功

docker ps

註:如啟動失敗可通過docker logs mysql查看日誌排錯

從0開始,實戰安裝MySQL

1.4、mysql 配置

vi /mydata/mysql/conf/my.cnf

文件內容如下:

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

init_connect=’SET collation_connection = utf8_unicode_ci’

init_connect=’SET NAMES utf8′

character-set-server=utf8

collation-server=utf8_unicode_ci

skip-character-set-client-handshake

#允許最大連接數;MySQL的max_connections參數用來設置最大連接(用戶)數。每個連接MySQL的用戶均算作一個連接,max_connections的默認值為100

#MySQL無論如何都會保留一個用於管理員(SUPER)登陸的連接,用於管理員連接數據庫進行維護操作,即使當前連接數已經達到了max_connections。因此MySQL的實際最大可連接數為max_connections+1;

這個參數實際起作用的最大值(實際最大可連接數)為16384,即該參數最大值不能超過16384,即使超過也以16384為準;

增加max_connections參數的值,不會佔用太多系統資源。系統資源(CPU、內存)的佔用主要取決於查詢的密度、效率等;

max_connections=1000

============== 2020/05/20 添加 ==============

bug:

導入 SQL 的時候出現 Error #1055

reason:

在MySQL5.7之後,sql_mode中默認存在ONLY_FULL_GROUP_BY,SQL語句未通過ONLY_FULL_GROUP_BY語義檢查所以報錯。

ONLY_FULL_GROUP_BY:ONLY_FULL_GROUP_BY要求select語句中查詢出來的列必須是明確的(其他語句也是一樣)。

fix:

1. 在配置文件 [mysqld] 下添加

sql_mode=’STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’

2. 重啟 mysql 容器。

注意: mysql為容器的名字,不同的請更換。或使用容器ID即可。

docker restart mysql

=======================================

1.5、mysql 隨 docker 自啟動

docker update mysql –restart=always

注意:這裡的 mysql 是容器的名字,不是鏡像的名字。

1.6、進入 mysql (optional)

docker exec -it mysql /bin/bash

按Ctrl+D或輸入exit退出。

1.7、登錄 mysql (optional)

mysql -u root -p

從0開始,實戰安裝MySQL

注意:密碼root密碼是上面設置的root

1.8、修改mysql開啟遠程訪問

1.8.1、查看用戶信息

mysql> select host,user,plugin,authentication_string from mysql.user;

從0開始,實戰安裝MySQL

備註:host為 % 表示不限制ip localhost表示本機使用 plugin非mysql_native_password 則需要修改密碼

navicat鏈接錯誤;我們繼續往下看;

從0開始,實戰安裝MySQL

1.8.2、開啟遠程訪問:

mysql> ALTER user ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘root’;

Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.01 sec)

從0開始,實戰安裝MySQL

註:如本機已安裝有mysql,3306端口被佔用,外部端口可以映射為其他端口,如下:

docker run -p 13306:3306 –name mysql …

從0開始,實戰安裝MySQL

1.9、查看日誌

docker logs mysql

1.10、開啟binlog日誌

查看是否開啟binlog日誌:

show variables like ‘%log_bin%’

從0開始,實戰安裝MySQL

找到剛掛載到本地的mysql設置目錄/mydata/mysql/conf

[root@slave132 conf]# cd /mydata/mysql/conf

[root@slave132 conf]# ll

總用量 4

-rw-r–r–. 1 root root 481 9月 22 10:12 my.cnf

[root@slave132 conf]# vi my.conf

從0開始,實戰安裝MySQL

新增內容如下:

#binlog setting

log-bin=/var/lib/mysql/mysql-bin server-id=12345

第一個參數:作用是mysql會根據這個配置自動設置log_bin為on狀態,自動設置log_bin_index文件為你指定的文件名後跟.index

第二個參數:用的如果是5.7及以上版本的話,重啟mysql服務會報錯,這個時候我們必須還要指定這樣一個參數,隨機指定一個不能和其他集群中機器重名的字符串,如果只有一台機器,那就可以隨便指定了

設置完後重啟mysql容器

docker restart mysql

show variables like ‘%log_bin%’

從0開始,實戰安裝MySQL

這個時候,在數據庫中創建一個數據庫、表,插入一些數據,就會在/var/lib/mysql容器中看到以下,或者是看掛載出來對應的目錄上(/mydata/mysql/data)

從0開始,實戰安裝MySQL

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/231183.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-10 18:46
下一篇 2024-12-10 18:46

相關推薦

發表回復

登錄後才能評論