MySQL(一)------centos下mysql安裝【離線rpm安裝】

安裝環境

centos7 x64

mysql5.7+

一、mysql離線包下載

官網下載地址:https://dev.mysql.com/downloads/mysql/

在這裏插入圖片描述
選擇5.7版本
在這裏插入圖片描述

如果下載太慢可以使用此鏈接(感謝網友分享)
https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar

二、mysql離線包安裝

2.1、上傳離線包

使用工具將mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar離線包上傳到/home文件夾下
在這裏插入圖片描述

2.2、解壓離線包

#進入home文件夾下
cd /home


#解壓tar包,得到rpm包 
tar -xf mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar -C /home/mysql/

在這裏插入圖片描述

2.3、查詢並卸載系統自帶的Mariadb

系統默認自帶有,但是一般都需要刪除後,自己重新安裝。

#查看系統自帶的Mariadb
rpm -qa|grep mariadb

#卸載系統自帶的Mariadb
rpm -e --nodeps 查詢的文件名稱

2.4、查詢並卸載系統老舊版本的Mysql

#檢查mysql是否存在
rpm -qa | grep mysql

#卸載系統老舊版本的Mysql
rpm -e --nodeps 文件名

2.5、rpm包安裝

前面我們解壓出來的就是mysql安裝需要rpm包,現在需要我們執行。

安裝順序如下

rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm

rpm -ivh mysql-community-devel-5.7.27-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm

2.6、rpm包安裝出現的問題

注意:我這裏安裝前五個都沒有問題,但是安裝第六個rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm時報錯

在這裏插入圖片描述
解釋是缺少依賴包。

我這裏缺少了net-tools.x86_64,libaio.x86_64,perl.x86_64三個依賴。

一般系統鏡像中是具有的

#查詢依賴包
yum search perl
yum search libaio 
yum search net-tools

yum安裝對應的包即可

yum -y install perl.x86_64
yum install -y libaio.x86_64
yum -y install net-tools.x86_64

如果不清楚是哪個名稱,直接安裝

yum install libaio -y

yum install perl -y

三、mysql啓動關閉

查看mysql服務是否啓動

service mysqld status

啓動mysql服務

systemctl start mysqld.service

停止mysql服務

systemctl stop mysqld.service

重啓mysql服務

systemctl restart mysqld.service

開機啓動mysql服務

 systemctl enable mysqld.service   

關閉開機啓動mysql服務

systemctl disable mysqld.service

四、重置root密碼

MySQL5.7會在安裝後爲root用戶生成一個隨機密碼,而不是像以往版本的空密碼

4.1、查詢隨機密碼

MySQL爲root用戶生成的隨機密碼通過mysqld.log文件可以查找到

grep 'temporary password' /var/log/mysqld.log

在這裏插入圖片描述

4.2、修改root用戶密碼

mysql -u root -p
mysql> Enter password: (查詢到隨機密碼)
mysql> SET PASSWORD FOR 'root'@'localhost'= "@YLpp123456";
mysql> exit

修改成功後,使用新密碼登錄,如果登錄成功,表示修改成功。

五、開放外部網段訪問3306端口及防火牆配置

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '@YLpp123456' WITH GRANT OPTION;

mysql>FLUSH PRIVILEGES;

mysql>exit;

防火牆配置3306端口允許外部訪問

#防火牆添加3306端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp

#centos7啓動防火牆
systemctl start firewalld.service

#centos7停止防火牆/關閉防火牆
systemctl stop firewalld.service

#centos7重啓防火牆
systemctl restart firewalld.service

#設置開機啓用防火牆
systemctl enable firewalld.service

#設置開機不啓動防火牆
systemctl disable firewalld.service

六、/etc/my.cnf 配置文件修改

一般,使用默認配置mysql數據庫服務器可以正常使用,如果需要使用自定義修改配置,可以自己手動修改。

配置文件作爲參考,具體配置結合實際需求。

vi /etc/my.cnf
 [client]    # 客戶端設置,即客戶端默認的連接參數
port = 3306  # 默認連接端口
socket = /home/mysql/3306/tmp/mysql.sock  # 用於本地連接的socket套接字,mysqld守護進程生成了這個文件
 
[mysqld]     # 服務端基本設置
# 基礎設置
server-id = 1  # Mysql服務的唯一編號 每個mysql服務Id需唯一
port = 3306    # MySQL監聽端口
basedir = /usr/local/mysql   # MySQL安裝根目錄
datadir = /home/mysql/3306/data  # MySQL數據文件所在位置
tmpdir  = /home/mysql/3306/tmp   # 臨時目錄,比如load data infile會用到
socket = /home/mysql/3306/tmp/mysql.sock  # 爲MySQL客戶端程序和服務器之間的本地通訊指定一個套接字文件
pid-file = /home/mysql/3306/log/mysql.pid # pid文件所在目錄
skip_name_resolve = 1         # 只能用IP地址檢查客戶端的登錄,不用主機名
character-set-server = utf8mb4   # 數據庫默認字符集,主流字符集支持一些特殊表情符號(特殊表情符佔用4個字節)
transaction_isolation = READ-COMMITTED # 事務隔離級別,默認爲可重複讀,MySQL默認可重複讀級別
collation-server = utf8mb4_general_ci  # 數據庫字符集對應一些排序等規則,注意要和character-set-server對應
init_connect='SET NAMES utf8mb4'  # 設置client連接mysql時的字符集,防止亂碼
lower_case_table_names = 1        # 是否對sql語句大小寫敏感,1表示不敏感
max_connections = 400             # 最大連接數
max_connect_errors = 1000         # 最大錯誤連接數
explicit_defaults_for_timestamp = true # TIMESTAMP如果沒有顯示聲明NOT NULL,允許NULL值
max_allowed_packet = 128M         # SQL數據包發送的大小,如果有BLOB對象建議修改成1G
interactive_timeout = 1800        # MySQL連接閒置超過一定時間後(單位:秒)將會被強行關閉
wait_timeout = 1800               # MySQL默認的wait_timeout值爲8個小時, interactive_timeout參數需要同時配置才能生效
tmp_table_size = 16M              # 內部內存臨時表的最大值 ,設置成128M;比如大數據量的group by ,order by時可能用到臨時表;超過了這個值將寫入磁盤,系統IO壓力增大
max_heap_table_size = 128M        # 定義了用戶可以創建的內存表(memory table)的大小
query_cache_size = 0              # 禁用mysql的緩存查詢結果集功能;後期根據業務情況測試決定是否開啓;大部分情況下關閉下面兩項
query_cache_type = 0
 
# 用戶進程分配到的內存設置,每個session將會分配參數設置的內存大小
read_buffer_size = 2M             # MySQL讀入緩衝區大小。對錶進行順序掃描的請求將分配一個讀入緩衝區,MySQL會爲它分配一段內存緩衝區。
read_rnd_buffer_size = 8M         # MySQL的隨機讀緩衝區大小
sort_buffer_size = 8M             # MySQL執行排序使用的緩衝大小
binlog_cache_size = 1M            # 一個事務,在沒有提交的時候,產生的日誌,記錄到Cache中;等到事務提交需要提交的時候,則把日誌持久化到磁盤。默認binlog_cache_size大小32K
 
back_log = 130                    # 在MySQL暫時停止響應新請求之前的短時間內多少個請求可以被存在堆棧中;官方建議back_log = 50 + (max_connections / 5),封頂數爲900
 
# 日誌設置
log_error = /home/mysql/3306/log/error.log # 數據庫錯誤日誌文件
slow_query_log = 1                # 慢查詢sql日誌設置
long_query_time = 1               # 慢查詢時間;超過1秒則爲慢查詢
slow_query_log_file = /home/mysql/3306/log/slow.log # 慢查詢日誌文件
log_queries_not_using_indexes = 1 # 檢查未使用到索引的sql
log_throttle_queries_not_using_indexes = 5   # 用來表示每分鐘允許記錄到slow log的且未使用索引的SQL語句次數。該值默認爲0,表示沒有限制
min_examined_row_limit = 100                 # 檢索的行數必須達到此值纔可被記爲慢查詢,查詢檢查返回少於該參數指定行的SQL不被記錄到慢查詢日誌
expire_logs_days = 5              # MySQL binlog日誌文件保存的過期時間,過期後自動刪除
 
# 主從複製設置
log-bin = mysql-bin               # 開啓mysql binlog功能
binlog_format = ROW               # binlog記錄內容的方式,記錄被操作的每一行
binlog_row_image = minimal        # 對於binlog_format = ROW模式時,減少記錄日誌的內容,只記錄受影響的列
 
# Innodb設置
innodb_open_files = 500           # 限制Innodb能打開的表的數據,如果庫裏的表特別多的情況,請增加這個。這個值默認是300
innodb_buffer_pool_size = 64M     # InnoDB使用一個緩衝池來保存索引和原始數據,一般設置物理存儲的60% ~ 70%;這裏你設置越大,你在存取表裏面數據時所需要的磁盤I/O越少
innodb_log_buffer_size = 2M       # 此參數確定寫日誌文件所用的內存大小,以M爲單位。緩衝區更大能提高性能,但意外的故障將會丟失數據。MySQL開發人員建議設置爲1-8M之間
innodb_flush_method = O_DIRECT    # O_DIRECT減少操作系統級別VFS的緩存和Innodb本身的buffer緩存之間的衝突
innodb_write_io_threads = 4       # CPU多核處理能力設置,根據讀,寫比例進行調整
innodb_read_io_threads = 4
innodb_lock_wait_timeout = 120    # InnoDB事務在被回滾之前可以等待一個鎖定的超時秒數。InnoDB在它自己的鎖定表中自動檢測事務死鎖並且回滾事務。InnoDB用LOCK TABLES語句注意到鎖定設置。默認值是50秒
innodb_log_file_size = 32M        # 此參數確定數據日誌文件的大小,更大的設置可以提高性能,但也會增加恢復故障數據庫所需的時間

七、Navicat連接mysql數據服務器

在這裏插入圖片描述

參考:https://blog.csdn.net/ai_64/article/details/100557530

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章