您好,登錄后才能下訂單哦!
不知道大家之前對類似MySQL 5.7版本編譯安裝的詳細教程的文章有無了解,今天我在這里給大家再簡單的講講。感興趣的話就一起來看看正文部分吧,相信看完MySQL 5.7版本編譯安裝的詳細教程你一定會有所收獲的。
1、 Mysql概述:
1.1、 Mysql概述
MySQL 是一個關系型數據庫管理系統,由瑞典 MySQL AB 公司開發,目前屬于 Oracle 公司。
MySQL 是最流行的關系型數據庫管理系統,在 WEB 應用方面 MySQL 是最好的 RDBMS(Relational Database Management System:關系數據庫管理系統)應用軟件之一。
MySQL 是一種關聯數據庫管理系統,關聯數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。
MySQL 所使用的 SQL 語言是用于訪問數據庫的最常用標準化語言。MySQL 軟件采用了雙授權政策,它分為社區版和商業版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL作為網站數據庫。由于其社區版的性能卓越,搭配 PHP 和 Apache 可組成良好的開發環境。
雙授權政策:開放源代碼版本和商業版本。 例如:很多公司出售應用軟件,例如 Microsoft、Apple 和 Oracle;如 Red Hat 和 IBM,則通過為其開放源代碼軟件提供銷售支援、托管或咨詢等服務來進行賺錢。企業可以通過開放源代碼發布他們的軟件,也可以同時銷售該軟件的商業版本。
1.2、 SQL概述
結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統;同時也是數據庫腳本文件的擴展名。
從上可以看出我們數據庫相關工作職位大概兩種:DBD和DBA
dba是數據庫管理員database administrator
dbd是數據庫開發人員database developer
SQL 是1986年10 月由美國國家標準局(ANSI)通過的數據庫語言美國標準,接著,國際標準化組織(ISO)頒布了SQL正式國際標準。1989年4月,ISO提出了具有完整性特征的SQL89標準,1992年11月又公布了SQL92標準,在此標準中,把數據庫分為三個級別:基本集、標準集和完全集。
1.3、 SQL語句結構
結構化查詢語言包含6個部分
1.3.1、 數據查詢語言(DQL)
其語句,也稱為“數據檢索語句”,就是從表中查詢數據。
1.3.2、 數據操作語言(DML):
在表中添加,修改和刪除數據記錄。也稱為動作查詢語言。
1.3.3、 事務處理語言(TPL):
它由多條sql語句組成的整體,它的語句能確保被DML語句修改的表中的所有記錄及時得到更新。
1.3.4、 數據控制語言(DCL):
設置數據庫的訪問權限。
1.3.5、 數據定義語言(DDL):
在數據庫中創建表或刪除表(CREAT TABLE 或 DROP TABLE);為表加入索引等。
1.3.6、 指針控制語言(CCL):
它的語句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于對一個或多個表單獨行的操作。
2、 源碼安裝mysql
2.1、 準備實驗環境
2.1.1、 準備源碼包
方法一:
上傳mysql安裝包和boost安裝包到我們的云服務器上
[root@cong11 ~]# ls
anaconda-ks.cfg boost_1_59_0.tar.bz2 mysql-5.7.26.tar.gz
方法二:
mysql下載地址:
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
注意:官網提供下載的源碼包為mysql-community-5.7.26-1.el7.src.rpm以.src.rpm結尾的rpm包,需要rpm -ivh安裝這個包,在當先目錄下生成rpmbuild的目錄文件,然后在rpmbuild/SOURCES/目錄下才是我們.tar.gz結尾的源碼包。
2.1.2、 配置本地yum源
[root@cong11 ~]# mount /dev/sr0 /mnt
[root@cong11 ~]# vim /etc/yum.repos.d/centos7.repo
[centos7]
name=CentOS7
baseurl=file:///mnt
enable=1
gpgcheck=0
配置完成后清除/生成 yum緩存
[root@cong11 ~]# yum clean all
[root@cong11 ~]# yum makecache
[root@cong11 ~]# yum –y groupinstall base //該軟件包擁有大多命令工具。
卸載boost
MySQL從5.7版本之后,必須有boost支持,建議把系統自帶的boost庫卸載,使用高版本。
[root@cong11 ~]# yum -y remove boost-*
解壓我們上傳的boost_1_59_0.tar.bz2到root目錄下,待會安裝直接指定boost目錄。
安裝bzip2解壓工具,解壓縮boost_1_59_0.tar.bz2
[root@cong11 ~]# yum install -y bzip2
[root@cong11 ~]# tar -jxvf boost_1_59_0.tar.bz2
2.1.3、 卸載系統自帶的mysql
#rpm –qa | grep –E '(mysql|mariadb)'
#rpm –e mariadb --nodeps
[root@cong11 ~]# yum -y remove mysql*
[root@cong11 ~]# yum -y remove mariadb*
2.2、 安裝mysql
2.2.4、 安裝MYSQL依賴包
Mysql需要使用cmake來進行編譯,所以需要安裝cmake,并且5.7版本cmake版本不低于2.8
[root@cong11 ~]# yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel
2.2.5、 添加mysql用戶和用戶組
[root@cong11 ~]# groupadd mysql
[root@cong11 ~]# useradd -M -s /sbin/nologin -r -g mysql mysql
2.2.6、 創建mysql數據庫存放位置并修改目錄權限
[root@cong11 ~]# mkdir -p /usr/local/mysql/{data,log}
[root@cong11 ~]# chown -R mysql:mysql /usr/local/mysql/
注意:生產環境中mysql的data數據目錄會單獨放在一塊硬盤中(能夠并行寫入數據和日志提高效率)
2.2.7、 解壓源碼包
[root@cong11 ~]# tar -zxvf mysql-5.7.26.tar.gz
2.2.8、 預編譯(配置./configure)
預編譯需要我們指定安裝服務的參數或者模塊,還會對編譯環境進行測試,只有通過測試,才能進行編譯,預編譯失敗一般都是缺少編譯環境GCC或者其他的依賴包,需要我們手工安裝完依賴包后,再次進行預編譯。
[root@cong11 ~]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/root/boost_1_59_0 #指定我們剛才解壓的boost目錄
官網詳細地址:
https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
參數注釋:
DCMAKE_INSTALL_PREFIX:指定MySQL程序的安裝目錄,默認/usr/local/mysql
DEFAULT_CHARSET:指定云服務器默認字符集,默認latin1
DEFAULT_COLLATION:指定云服務器默認的校對規則,默認latin1_general_ci
ENABLED_LOCAL_INFILE:指定是否允許本地執行LOAD DATA INFILE,默認OFF
WITH_COMMENT:指定編譯備注信息
WITH_xxx_STORAGE_ENGINE:指定靜態編譯到mysql的存儲引擎,MyISAM, MERGE,MEMBER以及CSV四種引擎默認即被編譯至云服務器,不需要特別指定。
WITHOUT_xxx_STORAGE_ENGINE:指定不編譯的存儲引擎
SYSCONFDIR:初始化參數文件目錄
MYSQL_DATADIR:數據文件目錄
MYSQL_TCP_PORT:服務端口號,默認3306
MYSQL_UNIX_ADDR:socket文件路徑,默認/tmp/mysql.sock
檢測命令執行結果
[root@cong11 ~]# echo $? #0說明上條命令執行成功,其他執行失敗
0
2.2.9、 編譯
[root@cong11 ~]# make -j $( grep processor /proc/cpuinfo | wc -l)
make -j 4 #注:-j 用來指定CPU核心數,可加快編譯速度。
檢測命令執行結果
[root@cong11 ~]# echo $?
0
查看云服務器CPU核心數
[root@cong11 ~]# grep processor /proc/cpuinfo | wc -l
4
2.2.10、 安裝
[root@cong11 ~]# make install
檢測命令執行結果
[root@cong11 ~]# echo $?
0
2.2.11、 修改mysql目錄權限
[root@cong11 mysql-5.7.26]# chown -R mysql:mysql /usr/local/mysql/
2.2.12、 生成my.cnf配置文件
備份配置文件文件
[root@cong11 ~]# mv /etc/my.cnf{,.bak} === mv /etc/my.cnf /etc/my.cnf.bak
自行創建my.cnf配置文件
[root@cong11 ~]# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql #mysql安裝目錄
datadir=/usr/local/mysql/data #mysql數據存放目錄
port=3306 #mysql監聽端口
socket=/usr/local/mysql/mysql.sock #mysql.sock文件存放目錄
symbolic-links=0 #關閉mysql的符號鏈接
character-set-server=utf8 #指定mysql的字符集為utf8
log-error=/usr/local/mysql/log/mysqld.log #指定mysql的錯誤日志存放路徑
pid-file=/usr/local/mysql/mysqld.pid #mysql的pid文件存放目錄
注意:所有my.cnf指定的目錄mysql用戶都要有讀寫權限。symbolic-links符號鏈接支持在別的目錄下存放mysql的數據庫文件,當我們mysql數據盤滿了以后,可以啟動symbolic-links=1(允許使用符號鏈接),把mysql的數據放在別的目錄下,然后鏈接到mysql的datadir目錄下。
2.2.13、 生成服務啟動腳本
[root@cong11 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@cong11 ~]# chmod +x /etc/init.d/mysqld #給腳本添加執行權限
2.2.14、 添加mysqld開機自啟動
[root@cong11 ~]# chkconfig --add mysqld #把mysql添加到系統服務
[root@cong11 ~]# chkconfig mysqld on #把mysql添加到開機自啟動
[root@cong11 ~]# chkconfig --list mysqld #查看mysql開機自啟動狀態
2.2.15、 初始化數據庫(創建數據庫的系統表)
如果無法初始化先啟動mysql
[root@cong11 ~]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql \
--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
2.2.16、 啟動服務
[root@cong11 ~]# /etc/init.d/mysqld start
Starting MySQL SUCCESS!
2.2.17、 添加path路徑:
添加mysql命令路徑到path環境變量中或者把mysql命令路徑軟連接到path環境變量里已經存在的目錄,這樣我們可以在系統任意位置直接執行mysql相關命令
[root@cong11 ~]# vim /etc/profile 添加下面2行 在文件的結尾
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
使修改生效
[root@cong11 ~]# source /etc/profile
或者:
[root@cong11 ~]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
2.2.18、 修改mysql密碼:
[root@cong11 ~]# mysqladmin -u root password "123456"
或者登陸到mysql修改密碼
[root@cong11 ~]# mysql
mysql> set password for 'root'@'localhost'=password('123456');
2.2.19、 登陸mysql
[root@cong11 ~]# mysql -uroot -p123456
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
管理員忘記MySQL密碼后怎么操作。
1.首先編寫 /etc/my.cnf
skip-grant-tables
2.重啟mysql服務
[root@Centos4 ~]# /etc/init.d/mysqld stop
[root@Centos4 ~]# /etc/init.d/mysqld start
3.進入mysql
[root@Centos4 ~]# mysql //此時敲回車可直接進入
mysql> update mysql.user set authentication_string=password('123.com') where user='root';
mysql>FLUSH PRIVILEGES; //刷新用戶授權信息
以上表示將root密碼更新為123.com
4.再次編輯/etc/my.cnf文件將skip-grant-tables移除
5.再次輸入密碼即可
[root@Centos4 ~]# mysql -u root -p
看完MySQL 5.7版本編譯安裝的詳細教程這篇文章,大家覺得怎么樣?如果想要了解更多相關,可以繼續關注我們的行業資訊板塊。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。