1. 程式人生 > >手工編譯安裝Mysql5.7

手工編譯安裝Mysql5.7

設置環境變量 存儲 esp grep dem gis 添加 啟動 mua

MySQL是一個多線程、多用戶的SQL數據庫服務,具有高性能、高可靠和易於使用的特性,為了確保MySQL數據庫的完整性、可定制性,這裏我會采用手工編譯的方式來安裝。

MySQL5.7源碼包鏈接:https://pan.baidu.com/s/1NZuZSzjBwbXT3_H3LvDQAg 密碼:3itt

c++運行庫包鏈接:https://pan.baidu.com/s/1Mqe5icXnlymb1fGvMUawkA 密碼:peiq

一、安裝環境
yum install gcc gcc-c++ ncurses-devel bison cmake -y #安裝所需要的環境

二、源碼編譯及安裝
tar zxvf boost_1_59_0.tar.gz -C /usr/local/
mv /usr/local/boost_1_59_0/ /usr/local/boost #將boost安裝包解壓到usr/local下,並且改名為boost

useradd -M -s /sbin/nologin mysql #創建一個管理MySQL的進程用戶,名字就mysql

tar zxvf mysql-5.7.17.tar.gz -C /opt/ #將mysql源碼包解壓到/opt目錄下

cd mysql-5.7.17/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安裝目錄
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #連接文件
-DSYSCONFDIR=/etc \ #mysql配置文件存放目錄
-DSYSTEMD_PID_DIR=/usr/local/mysql \ #進程文件存放目錄
-DDEFAULT_CHARSET=utf8 \ #指定默認字符集編碼

-DDEFAULT_COLLATION=utf8_general_ci \ #指定默認的字符集校對規則
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安裝INNOBASE存儲引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安裝ARCHIVE存儲引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安裝BLACKHOLE存儲引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ #安裝PERFSCHEMA存儲引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \ #數據文件存放目錄
-DWITH_BOOST=/usr/local/boost \ #指定boost庫的位置
-DWITH_SYSTEMD=1 #讓系統可以管理mysql數據庫

make && make install #對文件進行編譯和安裝,這個過程會很長,這裏要註意存放mysql的/opt目錄至少為10個G,不然最後沒法進行安裝

三、對數據庫目錄進行權限配置
chown -R mysql.mysql /usr/local/mysql/ #更改mysql目錄的屬主和屬組

四、配置主配置文件
vim /etc/my.cnf #更改主配置文件

[client]
port = 3306 #指定可以連接的客戶機的端口
default-character-set=utf8 #指定字符集
socket = /usr/local/mysql/mysql.sock #指定連接文件

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld] #這裏在配置時要先刪除原有的【mysqld】模塊
user = mysql #管理用戶
basedir = /usr/local/mysql #工作目錄
datadir = /usr/local/mysql/data #數據庫文件存放目錄
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid #指定PID進程文件
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES #在文件末尾插入這段話

chown mysql:mysql /etc/my.cnf #更改mysql配置文件的屬主和屬組

五、初始化數據庫
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data #初始化數據庫

六、設置環境變量
export PATH=$PATH:/usr/local/mysql/bin/ #將mysql目錄下的文件添加到環境變量下

七、添加系統服務
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ #將mysql的啟動腳本添加到系統服務中
systemctl daemon-reload #開啟該服務的守護進程
systemctl start mysqld #開啟服務

netstat -anpt | grep 3306 #可以看到mysql的3306端口已經打開
tcp6 0 0 :::3306 :::* LISTEN 69684/mysqld

八、訪問MySQL數據庫
mysql -u root -p #使用該命令進行登錄
Enter password: #因為我沒設置密碼,所以這裏直接回車就行
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.17 Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> #可以看到現在已經在mysql數據庫下

手工編譯安裝Mysql5.7