本文簡單描述CentOS源碼安裝MySQL5.7,所有步驟都經過測試完成,在安裝的過程中最容易遇到的問題一般都是路徑和許可權導致的,所有需要安裝的時候思考和記錄路徑和許可權,這裡需要善於使用linux系統的指令查找路徑和許可權。 ...
一、安裝方式
源碼安裝,源碼包名稱mysql-boost-5.7.27.tar.gz,此版本包含boost庫,在解壓後的boost路徑下。安裝時,可以-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/mysql-5.7.27/boost/指定boost路徑
二、安裝路徑
基礎路徑 /usr/local/mysql
數據文件路徑 /usr/local/mysql/data
三、安裝依賴
yum -y install autoconf automake libtool cmake ncurses-devel openssl-devel lzo-devel zlib-devel gcc gcc-c++
四、添加用戶信息
添加系統mysql組和mysql用戶
添加系統mysql組 groupadd mysql
添加mysql用戶 useradd -r -g mysql mysql (添加完成後可用id mysql查看)
切到mysql目錄 cd /usr/local/mysql
修改當前目錄擁有者為mysql用戶 chown -R mysql.mysql ./
五、配置預編譯
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DCOMPILATION_COMMENT="lq-edition" -DENABLE_DTRACE=0 -DOPTIMIZER_TRACE=1 -DWITH_DEBUG=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/mysql-5.7.27/boost/
出現如下警告
CMake Warning:
Manually-specified variables were not used by the project:
MYSQL_USER
WITH_READLINE
-- Build files have been written to: /usr/local/mysql-5.7.27
忽略即可。
六、編譯和安裝
編譯 make
安裝 make install
如果伺服器記憶體較小,可以使用如下指令
make -j `grep processor /proc/cpuinfo | wc -l` #編譯時會消耗很大記憶體,小記憶體可能無法編譯完成
七、初始化資料庫
cd /usr/local/mysql/bin/
./mysqld --initialize --user=mysql
獲取到密碼 ,/7Xa7Y#hN_X
八、開啟ssl功能
cd /usr/local/mysql/bin/
./mysql_ssl_rsa_setup
九、測試啟動mysql
cd /usr/local/mysql/bin/
./mysqld_safe --user=mysql
出現如下錯誤
mysqld_safe error:log-error set to '/var/log/mariadb/mariadb.log',however file does not exists,Create writable for you 'mysql'.
是mysql用戶沒有/var/log/mariadb/mariadb.log許可權
執行如下操作
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb
從新執行./mysqld_safe --user=mysql
執行成功
十、啟動mysql服務並更改密碼
cd /usr/local/mysql/support-files
./mysql.server start
上述方法一直報錯,因為創建mysql用戶的使用使用了chown -R mysql:mysql ./來配置/user/local/mysql目錄的所屬路徑,但是該方法應該是ubuntu的指令,所以導致安裝的時候資料庫的許可權出了問題,centos的指令應該是chown -R mysql.mysql ./,第四步已經更正,這裡應該不會再出現此錯誤,如果還是出現此錯誤,按照如下方式操作。
這裡為了正常啟動資料庫,而不用重裝,採用如下方式
配置/etc/my.cnf文件如下
[mysqld]
datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
socket=/usr/local/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
然後執行如下指令,以root許可權啟動資料庫
cd /usr/local/mysql/bin
./mysqld --user=root
十一、配置文件位置
/etc/my.cnf
十二、修改密碼
SET PASSWORD FOR 'root'@'%' = PASSWORD('password');
十三、添加環境變數
編輯 ~/.bashrc文件,vim ~/.bashrc,添加如下內容
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
執行如下指令,使環境變數生效
source ~/.bashrc
十四、運行資料庫遠程連接
執行下麵命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
刷新許可權表
FLUSH PRIVILEGES;
CREATE DATABASE IF NOT EXISTS test_db default charset utf8 COLLATE utf8_general_ci;
–uroot –ppassword –Dtest_db