linux環境部署--MySQL5.7二進制源碼文件安裝
linux環境部署--MySQL5.7二進制源碼文件安裝
mysql-5.7.11-Linux-glibc2.5-x86_64.tar.gz 提取碼:1999
MySQL5.7卸載
1、將安裝包解壓到 /usr/local/
sudo tar zxvf mysql-5.7.11-Linux-glibc2.5-x86_64.tar.gz -C /usr/local/
2、解壓后為了方便后面操作可把解壓后文件名修改為mysql
進入目標目錄cd /usr/local/mysql-5.7.11-linux-glibc2.5-x86_64/
剪切修改文件名mv mysql-5.7.11-linux-glibc2.5-x86_64/ mysql
3、進入 support-files目錄
cd /usr/local/mysql/support-files/

4、修改 my-default.cnf
[client]
port=3306
socket = /tmp/mysql.sock
loose-default-character-set = utf8
[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket = /tmp/mysql.sock
wait_timeout=2880000
interactive_timeout = 2880000
max_allowed_packet = 256M
sort_buffer_size = 8M
max_connections=2000
max_user_connections=800
default-storage-engine=INNODB
lower_case_table_names=1
character-set-server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqldump]
quick
max_allowed_packet = 256M
[mysql]
no-auto-rehash
default-character-set=utf8
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M
[mysqlhotcopy]
interactive-timeout
參數
- max_connections
允許的同時客戶的數量。增加該值增加 mysqld 要求的文件描述符的數量。這個數字應該增加,否則,你將經常看到 Too many connections 錯誤。 默認數值是100
- socket
參數的作用是指定MySQL服務監聽的Unix套接字文件路徑。通過該套接字連接MySQL服務,可以使用本機上的客戶端工具與MySQL進行通信,而不需要經過網絡傳輸。
- loose-default-character-set
參數是用來指定MySQL數據庫默認字符集的。與default-character-set參數不同的是,loose-default-character-set參數可以被外部程序隨時改變它的值,同時如果該參數未被正式設置,其缺省值將會是由MySQL二進制可執行文件自身決定的字符集編碼。
- port
端口:默認3306
- basedir
安裝路徑
- datadir
數據路徑
- wait_timeout
用于指定一個客戶端連接在沒有任何活動后需要等待的秒數,之后該連接就會被自動關閉。
- interactive_timeout
用于指定當客戶端連接處于交互狀態時(即有命令正在執行),多長時間內沒有活動就會自動關閉該連接。
- interactive_timeout
用于指定排序時使用的緩沖區大小
- max_user_connections
用于限制一個用戶在同一時間內最多可以創建的連接數。當一個用戶嘗試創建超過max_user_connections個連接時,MySQL會拒絕該用戶的連接請求并給出錯誤提示。
- default-storage-engine
指定默認的存儲引擎
- lower_case_table_names
用于指定在創建數據庫和表名時是否強制將名字轉換為小寫。該變量的值可以是0、1或2
-- 0:不將數據庫名和表名轉換為小寫,區分大小寫。
-- 1:將數據庫名和表名轉換為小寫,不區分大小寫。
-- 2:將數據庫名轉換為小寫,在存儲表名時保留原始大小寫,區分大小寫。
需要注意的是,如果啟用了lower_case_table_names=1,則在創建表時使用大寫字母或者混合大小寫命名可能導致意外的錯誤,因為MySQL將所有表名都轉換為小寫。
- sql_mode
它決定了 MySQL 在執行 SQL 語句時所遵循的規則和標準,包括如何處理數據、如何比較字符串、如何處理 NULL 值等等。下面是一些常見的 sql_mode 參數及其作用:
STRICT_TRANS_TABLES:強制 MySQL 執行事務時使用嚴格的表模式。當這個參數設置為 ON 時,如果插入的數據不符合表定義的類型,MySQL 會報錯而不是插入默認值或截斷數據。
NO_AUTO_CREATE_USER:禁止 MySQL 在 CREATE USER 語句中自動創建用戶。當這個參數設置為 ON 時,如果你在 CREATE USER 語句中指定了不存在的用戶,MySQL 不會自動創建該用戶,而是報錯。
NO_ENGINE_SUBSTITUTION:禁止 MySQL 在無法使用指定存儲引擎時使用默認存儲引擎。當這個參數設置為 ON 時,如果你在創建表時指定了不存在的存儲引擎,MySQL 不會使用默認存儲引擎,而是報錯。
ONLY_FULL_GROUP_BY:強制 MySQL 對 GROUP BY 子句中的所有列進行分組。當這個參數設置為 ON 時,如果你在 SELECT 語句中使用了 GROUP BY 子句,但 SELECT 列中包含了未被 GROUP BY 的列,MySQL 會報錯。
ANSI_QUOTES:啟用 ANSI 標準中的雙引號作為標識符引用符。當這個參數設置為 ON 時,你可以使用雙引號來引用數據庫對象名稱,例如 "table_name"。
5、復制my-default.cnf 到 /etc/my.cnf (mysqld啟動時自動讀取)
cp my-default.cnf /etc/my.cnf
6、復制mysql.server到/etc/init.d/目錄下,目的想實現開機自動啟動
cp mysql.server /etc/init.d/mysql
7、修改 /etc/init.d/mysql參數
vi /etc/init.d/mysql
添加
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
8、創建一個操作數據庫的專門用戶
-
groupadd mysql#建立一個mysql的組 -
useradd -r -g mysql mysql#建立mysql用戶,并且把用戶放到mysql組 -
passwd mysql#給mysql用戶設置一個密碼 -
chown -R mysql:mysql /usr/local/mysql/#給目錄/usr/local/mysql 更改擁有者
9、初始化 mysql 的數據庫
-
cd /usr/local/mysql/bin/首先去到mysql的bin目錄 -
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data初始化
-
此時生成出一個data目錄,表示數據庫初始化成功,記錄臨時密碼
Hkta?9tHjX%&。 -
./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data給數據庫加密 -
./mysqld_safe --user=mysql &啟動mysql(加上&代表此進程在后臺運行) -
另外打開一個窗口,檢查
ps -ef | grep mysql

發現有以上進程便代表啟動成功
-
登錄數據庫
./mysql -uroot -p

-
修改密碼`set password=password('新密碼');
`

exit退出mysql
9. 設置開機自啟動
`chkconfig --add mysql`添加服務mysql
`chkconfig mysql on`設置mysql服務為自動
`init 6`重啟查看進程
==提示:輸入init 6 后敲回車,系統開始重啟,Xshell鏈接會中斷,等兩三分鐘后再Xshell重新鏈接。==
`ps -ef | grep mysql`查看進程

10. 配置環境變量
vi /etc/profile為了方便操作,配置環境變量還是有必要的。
在文件末尾加上如下兩行代碼
PATH=$PATH:/usr/local/mysql/bin
export PATH
執行 命令source /etc/profile使其修改生效,執行完可通過echo $PATH命令查看是否添加成功。

11. 配置遠程連接
use mysql; update user set Host='%' where User='root';
or
grant all privileges on *.* to 'root'@'%' identified by 'password';
然后刷新更改flush privileges;解釋:root 為用戶名,“%”指的是所有ip地址,可替換為具體的ip,.代表數據庫.表。
浙公網安備 33010602011771號