離線安裝 mysql 5.7 教程


轉發鏈接:離線安裝mysql5.7教程

1)前期准備
   方式一:百度雲盤下載【鏈接: https://pan.baidu.com/s/1zP3XOT6__QLvJ-7XakGn6A  密碼: dwdn 】

 方式二:MySQL 5.7 Linux安裝包下載:https://dev.mysql.com/downloads/mysql/     或從 http://www.jrnsoft.com/ziyuan.html 下載

2)查詢並卸載系統自帶的Mariadb

rpm -qa | grep mariadb

rpm -e --nodeps 文件名

3)安裝實施
建立用戶,為了方便數據庫管理,對於安裝的MySQL數據庫,生產上我們都會建立一個mysql用戶和mysql用戶組:

# 添加mysql用戶組

groupadd mysql

# 添加mysql用戶

useradd -g mysql mysql -d /home/mysql

# 修改mysql用戶的登陸密碼

passwd mysql

4)上傳至服務器

上傳 mysql-5.7.21-linux-glibc2.12-x86_64.tar 安裝包到 /usr/local 目錄下

# 解壓縮

tar -xvf mysql-5.7.30-linux-glibc2.12-x86_64.tar

# 會得到一個mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz文件,再解壓縮

tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

# 建立軟鏈接,便於以后版本升級

ln -s mysql-5.7.30-linux-glibc2.12-x86_64 mysql

# 修改mysql文件夾下所有文件的用戶和用戶組

chown -R mysql:mysql mysql/

5)創建配置文件

# 創建配置文件

  cd /etc # 在my.cnf文件中添加對應的配置項,文章末尾會提供一個默認的 my.cnf 配置【然后填入下面配置】   vi 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 # 此參數確定數據日志文件的大小,更大的設置可以提高性能,但也會增加恢復故障數據庫所需的時間

6)安裝數據庫

cd /usr/local/mysql/bin


# 初始化數據庫,並指定啟動mysql的用戶

./mysqld --initialize --user=mysql

這里最好指定啟動mysql的用戶名,否則就會在啟動MySQL時出現權限不足的問題

隨機密碼

安裝完成后,在my.cnf中配置的datadir目錄下生成一個 /home/mysql/3306/log/error.log 文件,里面記錄了root用戶的隨機密碼。

 

7)設置開機自啟動服務

# 復制啟動腳本到資源目錄

cp /usr/local/mysql-5.7.30-linux-glibc2.12-x86_64/support-files/mysql.server /etc/rc.d/init.d/mysqld 

# 增加mysqld服務控制腳本執行權限

chmod
+x /etc/rc.d/init.d/mysqld

# 將mysqld服務加入到系統服務

chkconfig
--add mysqld

# 檢查mysqld服務是否已經生效

chkconfig
--list mysqld

# 切換至mysql用戶,啟動|停止|重啟|狀態

mysql service mysqld start|stop|restart|status

8)配置環境變量

為了更好的操作mysql,配置環境變量

# 切換至mysql用戶

su - mysql

# 修改配置文件,增加 export PATH=$PATH:/usr/local/mysql/bin

vi .bash_profile

# 立即生效

source .bash_profile

方式二:也可以直接使用 root 用戶進行操作數據庫權限
  vim /etc/profile 進入該文件加入如下配置:
    
# mysql config
export MYSQL_HOME=/usr/local/mysql

export PATH=$PATH:$MYSQL_HOME/bin

source /etc/profile 即可生效,使用 root 用戶 mysql -uroot -proot 進行登錄即可
 

9)登陸,修改密碼

# 登陸mysql

mysql -u root -p

# 修改root用戶密碼

set password for root@localhost=password("root");
設置允許所有IP訪問

GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'root';

FLUSH PRIVILEGES;

10)禁用firewalld

systemctl mask firewalld

systemctl stop firewalld

 11)修改數據庫編碼格式

參考鏈接地址:Linux環境在線使用Yum源安裝mysql5.7(教程二)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM