最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Linux中部署并初始化MySQL的多種方式

 更新時間:2025年11月27日 09:53:25   作者:u***3243  
MySQL是常用的關(guān)系型數(shù)據(jù)庫,被廣泛用于學習與實際工作中,本篇文章介紹在Linux系統(tǒng)中使用多種方式部署并初始化MySQL數(shù)據(jù)庫,包括源碼安裝、rpm安裝以及yum安裝,需要的朋友可以參考下

前言

MySQL是常用的關(guān)系型數(shù)據(jù)庫,具有以下特點:

  • 1、開源,不需要支付額外的費用即可使用
  • 2、支持包括Windows/Linux在內(nèi)的多個操作系統(tǒng)
  • 3、支持多種語言,包括中文編碼GB 2312、BIG5,日文的shift_JIS
  • 4、為包括C、C++、java、python、PHP在內(nèi)的多種編程語言提供了API
  • 5、支持多種存儲引擎,例如MyISAM、InnoDB
  • 6、使用標準的SQL語言進行操作
  • 7、支持多線程,充分利用CPU資源
  • 8、存儲數(shù)據(jù)量大,32位系統(tǒng)表文件最大可支持4GB,64位系統(tǒng)表文件最大可支持8TB
  • 9、可以定制,采用了GPL協(xié)議,通過修改源碼來開發(fā)自己的MySQL系統(tǒng)

基于以上特點,MySQL被廣泛用于學習與實際工作中,本篇文章介紹在Linux系統(tǒng)中使用多種方式部署并初始化MySQL數(shù)據(jù)庫,包括源碼安裝、rpm安裝以及yum安裝。

實驗環(huán)境介紹

1、最小化安裝的4核4g Centos7.6 虛擬機

2、XShell遠程連接工具

3、本文章中使用的所有源碼包、rpm包的下載地址:https://www.mysql.com/downloads/

一、源碼包安裝MySQL

相較于其他兩種安裝,源碼安裝較繁瑣,但優(yōu)勢在于可以在安裝時以及初始化階段將需要設(shè)置的參數(shù)一次性設(shè)置到位
以下是安裝過程

1、配置MySQL&編譯安裝

一些版本的Linux系統(tǒng)中默認存在mariadb組件,該組件與安裝MySQL是沖突的,在安裝MySQL之前必須把該組件卸載掉,其中 --nodeps可以指定只刪除mariadb-libs,不刪除其依賴關(guān)系

rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs

接下來為MySQL安裝依賴,這些依賴包在本地yum源中均存在,無需配置其他網(wǎng)絡(luò)yum源。

yum install -y cmake make gcc gcc-c++ openssl openssl-devel ncurses ncurses-devel bisonbison-devel

將依賴包上傳至Linux系統(tǒng)中需要安裝命令lrzsz,該命令可實現(xiàn)Windows拖動文件上傳至Linux系統(tǒng)中

yum -y install lrzsz

之后將在MySQL官網(wǎng)上下載的源碼包拖動上傳至Linux系統(tǒng)

解壓源碼包到指定路徑下,解壓完成后切換到該路徑下

tar -zxf mysql-boost-5.7.37.tar.gz -C /usr/src/
cd /usr/src/mysql-5.7.37/

接著進行預編譯,有別于其他軟件,MySQL的預編譯使用的是cmake命令,復制以下代碼

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/usr/local/mysql/etc -DWITH_INNOBASE_STORAGE_ENGINE=ON -DWITH_MYISAM_STORAGE_ENGINE=ON -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock -DWITH_INNODB_MEMCACHED=ON -DWITH_BOOST=boost/boost_1_59_0

#解釋一下上述代碼
-DCMAKE_INSTALL_PREFIX —指定安裝路徑
-DMYSQL_DATADIR —數(shù)據(jù)目錄,即MySQL的數(shù)據(jù)存放路徑
-DSYSCONFDIR —配置文件所在路徑
-DWITH_INNOBASE_STORAGE_ENGINE/-DWITH_MYISAM_STORAGE_ENGINE —啟用兩種存儲引擎
-DDEFAULT_CHARSET/-DDEFAULT_COLLATION —指定字符集
-DENABLED_LOCAL_INFILE —啟用或禁用LOAD DATA LOCAL INFILE 語句
-DMYSQL_TCP_PORT —指定服務(wù)端口號
-DMYSQL_UNIX_ADDR —指定Unix套接字文件的路徑
-DWITH_INNODB_MEMCACHED —啟用或禁用InnoDB 存儲引擎對 Memcached 的支持
-DWITH_BOOST —指定boost庫

運行完上述代碼

如果出現(xiàn)報錯,檢查一下依賴包是否都齊全

接著進行編譯安裝

make -j4 && make install

其中-j選項表示多個線程進行編譯,這樣可以節(jié)省時間

2、初始化數(shù)據(jù)庫

安裝完成后,運行如下代碼

groupadd mysql
useradd -r -g mysql -s /bin/false mysql
cd /usr/local/mysql
mkdir -p /usr/local/mysql/data  
mkdir -p /usr/local/mysql/etc   
mkdir -p /usr/local/mysql/tmp  
mkdir -p /usr/local/mysql/logs  
chown -R mysql:mysql /usr/local/mysql
vim  /usr/local/mysql/etc/my.cnf

解釋一下上述代碼
groupadd mysql #為MySQL創(chuàng)建一個組來管理軟件的運行
useradd -r-g mysql -s /bin/false mysql #為MySQL創(chuàng)建一個用戶來管理軟件的運行
cd /usr/local/mysql #切換到MySQL的安裝路徑
mkdir -p /usr/local/mysql/data #創(chuàng)建安裝前指定的數(shù)據(jù)存放目錄
mkdir -p /usr/local/mysql/etc #創(chuàng)建安裝前指定的配置文件所在目錄
mkdir -p /usr/local/mysql/tmp #創(chuàng)建臨時文件目錄
mkdir -p /usr/local/mysql/logs #創(chuàng)建日志文件目錄
vim /usr/local/mysql/etc/my.cnf #創(chuàng)建編輯配置文件,默認也存在配置文件但其中內(nèi)容較少

將以下的配置文件粘貼進去

[client]                                                #客戶端設(shè)置
port=3306                                               #服務(wù)器監(jiān)聽端口,默認為3306
socket=/usr/local/mysql/tmp/mysql.sock                  #Unix套接字文件路徑,默認/tmp/mysql.sock
 
[mysqld]                                                #服務(wù)端設(shè)置
## 一般配置選項
port=3306                                               #服務(wù)器監(jiān)聽端口,默認為3306
basedir=/usr/local/mysql                                #MySQL安裝根目錄
datadir=/usr/local/mysql/data                           #MySQL數(shù)據(jù)文件目錄
socket=/usr/local/mysql/tmp/mysql.sock                  #Unix套接字文件路徑,默認/tmp/mysql.sock
pid-file=/usr/local/mysql/tmp/mysql.pid                 #服務(wù)進程pid文件路徑
character_set_server=utf8                               #默認字符集
default_storage_engine=InnoDB                           #默認InnoDB存儲引擎
user=mysql
 
## 連接配置選項
max_connections=200                                     #最大并發(fā)連接數(shù)
table_open_cache=400                                    #表打開緩存大小,默認2000
open_files_limit=1000                                   #打開文件數(shù)限制,默認5000
max_connect_errors=200                                  #最大連接失敗數(shù),默認100
back_log=100                                            #請求連接隊列數(shù)
connect_timeout=20                                      #連接超時時間,默認10秒
interactive_timeout=1200                                #交互式超時時間,默認28800秒
wait_timeout=600                                        #非交互超時時間,默認28800秒
net_read_timeout=30                                     #讀取超時時間,默認30秒
net_write_timeout=60                                    #寫入超時時間,默認60秒
max_allowed_packet=8M                                   #最大傳輸數(shù)據(jù)字節(jié),默認4M
thread_cache_size=10                                    #線程緩沖區(qū)(池)大小
thread_stack=256K                                       #線程棧大小,32位平臺196608、64位平臺262144
 
## 臨時內(nèi)存配置選項
tmpdir=/tmp                                             #臨時目錄路徑
tmp_table_size=64M                                      #臨時表大小,默認16M
max_heap_table_size=64M                                 #最大內(nèi)存表大小,默認16M
sort_buffer_size=1M                                     #排序緩沖區(qū)大小,默認256K
join_buffer_size=1M                                     #join緩沖區(qū)大小,默認256K
 
## Innodb配置選項
#innodb_thread_concurrency=0							#InnoDB線程并發(fā)數(shù)
innodb_io_capacity=200                                  #IO容量,可用于InnoDB后臺任務(wù)的每秒I/O操作數(shù)(IOPS),
innodb_io_capacity_max=400                              #IO最大容量,InnoDB在這種情況下由后臺任務(wù)執(zhí)行的最大IOPS數(shù)
innodb_lock_wait_timeout=50                             #InnoDB引擎鎖等待超時時間,默認50(單位:秒)
 
innodb_buffer_pool_size=512M							#InnoDB緩沖池大小,默認128M
innodb_buffer_pool_instances=4                          #InnoDB緩沖池劃分區(qū)域數(shù)
innodb_max_dirty_pages_pct=75							#緩沖池最大允許臟頁比例,默認為75
innodb_flush_method=O_DIRECT                            #日志刷新方法,默認為fdatasync
innodb_flush_log_at_trx_commit=2                        #事務(wù)日志刷新方式,默認為0
transaction_isolation=REPEATABLE-READ                   #事務(wù)隔離級別,默認REPEATABLE-READ
 
innodb_data_home_dir=/usr/local/mysql/data              #表空間文件路徑,默認保存在MySQL的datadir中
innodb_data_file_path=ibdata1:128M:autoextend           #表空間文件大小
innodb_file_per_table=ON                                #每表獨立表空間
 
innodb_log_group_home_dir=/usr/local/mysql/data         #redoLog文件目錄,默認保存在MySQL的datadir中
innodb_log_files_in_group=2                             #日志組中的日志文件數(shù),默認為2
innodb_log_file_size=128M                               #日志文件大小,默認為48MB
innodb_log_buffer_size=32M                              #日志緩沖區(qū)大小,默認為16MB
 
## MyISAM配置選項
key_buffer_size=32M                                     #索引緩沖區(qū)大小,默認8M
read_buffer_size=4M										#順序讀緩區(qū)沖大小,默認128K
read_rnd_buffer_size=4M									#隨機讀緩沖區(qū)大小,默認256K
bulk_insert_buffer_size=8M                              #塊插入緩沖區(qū)大小,默認8M
myisam_sort_buffer_size=8M								#MyISAM排序緩沖大小,默認8M
#myisam_max_sort_file_size=1G                           #MyISAM排序最大臨時大小
myisam_repair_threads=1                                 #MyISAM修復線程
skip-external-locking                                   #跳過外部鎖定,啟用文件鎖會影響性能
 
## 日志配置選項
log_output=FILE                                         #日志輸出目標,TABLE(輸出到表)、FILE(輸出到文件)、NONE(不輸出),可選擇一個或多個以逗>號分隔
log_error=/usr/local/mysql/logs/error.log               #錯誤日志存放路徑
log_error_verbosity=1                                   #錯誤日志過濾,允許的值為1(僅錯誤),2(錯誤和警告),3(錯誤、警告和注釋),默認值為3。
log_timestamps=SYSTEM                                   #錯誤日志消息格式,日志中顯示時間戳的時區(qū),UTC(默認值)和 SYSTEM(本地系統(tǒng)時區(qū))
general_log=ON                                          #開啟查詢?nèi)罩?,一般選擇不開啟,因為查詢?nèi)罩居涗浐茉敿?,會增大磁盤IO開銷,影響性能
general_log_file=/usr/local/mysql/logs/general.log      #通用查詢?nèi)罩敬娣怕窂?
 
## 慢查詢?nèi)罩九渲眠x項
slow_query_log=ON                                       #開啟慢查詢?nèi)罩?
slow_query_log_file=/usr/local/mysql/logs/slowq.log		#慢查詢?nèi)罩敬娣怕窂?
long_query_time=2                                       #慢查詢時間,默認10(單位:秒)
min_examined_row_limit=100                              #最小檢查行限制,檢索的行數(shù)必須達到此值才可被記為慢查詢
log_slow_admin_statements=ON                            #記錄慢查詢管理語句
log_queries_not_using_indexes=ON                        #記錄查詢未使用索引語句
log_throttle_queries_not_using_indexes=5                #記錄未使用索引速率限制,默認為0不限制
log_slow_slave_statements=ON                            #記錄從庫復制的慢查詢,作為從庫時生效,從庫復制中如果有慢查詢也將被記錄
 
## 復制配置選項
server-id=1                                             #MySQL服務(wù)唯一標識
log-bin=mysql-bin                                       #開啟二進制日志,默認位置是datadir數(shù)據(jù)目錄
log-bin-index=mysql-bin.index                           #binlog索引文件
binlog_format=MIXED                                     #binlog日志格式,分三種:STATEMENT、ROW或MIXED,MySQL 5.7.7之前默認為STATEMENT,之后默認為ROW
binlog_cache_size=1M                                    #binlog緩存大小,默認32KB
max_binlog_cache_size=1G                                #binlog最大緩存大小,推薦最大值為4GB
max_binlog_size=256M                                    #binlog最大文件大小,最小值為4096字節(jié),最大值和默認值為1GB
expire_logs_days=7                                      #binlog過期天數(shù),默認為0不自動刪除
log_slave_updates=ON                                    #binlog級聯(lián)復制
sync_binlog=1                                           #binlog同步頻率,0為禁用同步(最佳性能,但可能丟失事務(wù)),為1開啟同步(影響性能,但最安全不會丟失任何事務(wù)),為N操作N次事務(wù)后同步1次
 
relay_log=relay-bin                                     #relaylog文件路徑,默認位置是datadir數(shù)據(jù)目錄
relay_log_index=relay-log.index                         #relaylog索引文件
max_relay_log_size=256M                                 #relaylog最大文件大小
relay_log_purge=ON                                      #中繼日志自動清除,默認值為1(ON)
relay_log_recovery=ON                                   #中繼日志自動恢復
 
auto_increment_offset=1                                 #自增值偏移量
auto_increment_increment=1                              #自增值自增量
slave_net_timeout=60                                    #從機連接超時時間
replicate-wild-ignore-table=mysql.%                     #復制時忽略的數(shù)據(jù)庫表,告訴從線程不要復制到與給定通配符模式匹配的表
skip-slave-start                                        #跳過Slave啟動,Slave復制進程不隨MySQL啟動而啟動
 
## 其他配置選項
#memlock=ON                                             #開啟內(nèi)存鎖,此選項生效需系統(tǒng)支持mlockall()調(diào)用,將mysqld進程鎖定在內(nèi)存中,防止遇到操作系統(tǒng)導致mysqld交換到磁盤的問題
 
[mysqldump]                                             #mysqldump數(shù)據(jù)庫備份工具
quick                                                   #強制mysqldump從服務(wù)器查詢?nèi)〉糜涗浿苯虞敵觯皇侨〉盟杏涗浐髮⑺鼈兙彺娴絻?nèi)存中
max_allowed_packet=16M                                  #最大傳輸數(shù)據(jù)字節(jié),使用mysqldump工具備份數(shù)據(jù)庫時,某表過大會導致備份失敗,需要增大該值(大>于表大小即可)
 
[myisamchk]                                             #使用myisamchk實用程序可以用來獲得有關(guān)你的數(shù)據(jù)庫表的統(tǒng)計信息或檢查、修復、優(yōu)化他們
key_buffer_size=32M                                     #索引緩沖區(qū)大小
myisam_sort_buffer_size=8M                              #排序緩沖區(qū)大小
read_buffer_size=4M                                     #讀取緩區(qū)沖大小
write_buffer_size=4M                                    #寫入緩沖區(qū)大小

初始化最后一步,按照配置文件的內(nèi)容來創(chuàng)建數(shù)據(jù)庫

bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --initialize --user=mysql

3、配置環(huán)境變量

為MySQL數(shù)據(jù)庫配置環(huán)境變量

echo export MYSQL_HOME=/usr/local/mysql >> /etc/profile   #軟件的路徑
echo export PATH=$MYSQL_HOME/bin:$PATH >> /etc/profile   #命令的路徑
source /etc/profile   #重新加載系統(tǒng)環(huán)境變量配置文件

復制配置文件到init.d目錄使系統(tǒng)能夠使使用systemctl命令管理MySQL

cp /usr/src/mysql-5.7.37/support-files/mysql.server /etc/init.d/mysql 
cd /etc/init.d/
chmod +x mysql
systemctl daemon-reload
systemctl start mysql
chkconfig mysql on
systemctl status mysql

設(shè)置軟鏈接,把MySQL的命令都放在默認的命令里面,使得可以在系統(tǒng)的任何地方使用MySQL的命令

ln -s /usr/local/mysql/bin/* /usr/local/bin/

自MySQL5.7版本起,MySQL初始有默認密碼,存放在日志文件當中

cat /usr/local/mysql/logs/error.log

將冒號之后的內(nèi)容復制

mysql -uroot -p

粘貼回車

進入之后的第一條命令只能修改密碼,其他命令均無效

set password=password('123456');

語法 set password=password(‘新密碼’);

至此,源碼包安裝MySQL完成,可以開始使用數(shù)據(jù)庫了

二、yum安裝MySQL

yum安裝和rpm安裝較簡單
安裝lrzsz命令,使文件能上傳到Linux中

yum -y install lrzsz

將在MySQL官網(wǎng)上下載的適合自己系統(tǒng)版本的yum源上傳

安裝yum源

rpm -ivh mysql84-community-release-el7-1.noarch.rpm

查看可用的rpm包

yum list | grep mysql

安裝mysql-community-servr即可,會自動解決依賴關(guān)系

yum -y install mysql-community-server

開啟數(shù)據(jù)庫服務(wù)

systemctl start mysqld && systemctl enable mysqld && systemctl status mysqld

查看mysql默認密碼

cat /var/log/mysqld.log | grep password

進入MySQL

mysql -uroot -p

修改密碼

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword!123';
FLUSH PRIVILEGES;

至此yum安裝完成,可以開始使用

三、rpm安裝MySQL

同樣上傳rpm包

yum -y install lrzsz

由于rpm包的互相依賴關(guān)系,必須按照如下順序安裝

rpm -e mariadb-libs --nodeps
rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpm   
rpm -ivh mysql-community-libs-5.7.37-1.el7.x86_64.rpm     
rpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm   
rpm -ivh mysql-community-server-5.7.37-1.el7.x86_64.rpm 

下載完成之后啟動

systemctl start mysqld && systemctl enable mysqld && systemctl status mysqld

cat /var/log/mysqld.log  | grep password
mysql -uroot -p

rpm安裝方式默認密碼策略為8位大小寫、數(shù)字、符號

set password=password('Aa12345&');

至此安裝完成

以上就是在Linux中部署并初始化MySQL的多種方式的詳細內(nèi)容,更多關(guān)于Linux部署并初始化MySQL的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Linux五種IO模型的使用解讀

    Linux五種IO模型的使用解讀

    文章系統(tǒng)解析了Linux的五種IO模型(阻塞、非阻塞、IO復用、信號驅(qū)動、異步),重點區(qū)分同步與異步IO的本質(zhì)差異,強調(diào)同步由用戶發(fā)起,異步由內(nèi)核觸發(fā),通過對比各模型的優(yōu)缺點,幫助理解IO效率提升的關(guān)鍵機制
    2025-09-09
  • Apache Pulsar 微信大流量實時推薦場景下實踐詳解

    Apache Pulsar 微信大流量實時推薦場景下實踐詳解

    這篇文章主要為大家介紹了Apache Pulsar 微信大流量實時推薦場景下實踐詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Linux?文件內(nèi)容相關(guān)命令使用匯總

    Linux?文件內(nèi)容相關(guān)命令使用匯總

    Linux操作系統(tǒng)有很多強大的文件內(nèi)容相關(guān)命令,這些命令可以讓您查看、分析和編輯文件。其中,最基本和常用的命令包括cat、more、less和head/tail等。除了這些基本命令之外,grep和find命令也是文件搜索和過濾方面的有力工具。
    2023-04-04
  • centos6.5下安裝zabbix2.4的教程圖解

    centos6.5下安裝zabbix2.4的教程圖解

    這篇文章主要介紹了centos6.5下安裝zabbix2.4的教程圖解,本文分步驟給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • linux cd的含義以及用法

    linux cd的含義以及用法

    在本文里我們給大家整理了關(guān)于linux cd的含義以及用法并把相關(guān)知識點做了詳細介紹,需要的朋友們參考下。
    2019-05-05
  • 使用Linux的read和write系統(tǒng)函數(shù)操作文件的方法詳解

    使用Linux的read和write系統(tǒng)函數(shù)操作文件的方法詳解

    在Linux系統(tǒng)編程中,文件操作是非?;A(chǔ)且重要的部分,Linux提供了多個系統(tǒng)調(diào)用來實現(xiàn)文件的讀寫操作,其中read和write是最常用的兩個函數(shù),本文將詳細介紹這兩個系統(tǒng)調(diào)用的功能、使用方法以及實際應(yīng)用中的注意事項,需要的朋友可以參考下
    2025-10-10
  • linux之truncate命令、split命令用法及說明

    linux之truncate命令、split命令用法及說明

    本文介紹了Linux中的truncate和split命令,truncate命令用于將文件大小縮小或擴展到指定大小,可用于清除日志文件等;split命令用于將大文件拆分成多個小文件,可按行數(shù)、字節(jié)大小或循環(huán)分布等方式切割文件
    2026-05-05
  • 淺談linux下的串口通訊開發(fā)

    淺談linux下的串口通訊開發(fā)

    下面小編就為大家?guī)硪黄獪\談linux下的串口通訊開發(fā)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • IO多路復用之epoll全面總結(jié)(必看篇)

    IO多路復用之epoll全面總結(jié)(必看篇)

    下面小編就為大家?guī)硪黄狪O多路復用之epoll全面總結(jié)(必看篇)。小編覺得挺不錯的?,F(xiàn)在就分享給大家。也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • Xshell連接centOS7并與CentOS7聯(lián)網(wǎng)

    Xshell連接centOS7并與CentOS7聯(lián)網(wǎng)

    本文主要介紹了Xshell連接centOS7并與CentOS7聯(lián)網(wǎng),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08

最新評論

河西区| 周口市| 浑源县| 眉山市| 分宜县| 思南县| 万安县| 凤庆县| 育儿| 哈尔滨市| 曲沃县| 鄂托克前旗| 永春县| 罗江县| 光山县| 宾阳县| 武定县| 南皮县| 锦州市| 陆良县| 靖西县| 华池县| 高淳县| 喀什市| 密山市| 惠州市| 华宁县| 贵定县| 南安市| 乐平市| 观塘区| 兴国县| 洛阳市| 略阳县| 北票市| 阿拉善右旗| 牙克石市| 凌海市| 文安县| 军事| 磐安县|