遇到須要在新系統上安裝MySQL的事情,簡單記錄一下過程。html
聲明:最好的文檔是官方文檔,我也是看的官方文檔,只是中間遇到點問題,記錄一下出現的問題和處理方式。貼一些官方文檔地址。mysql
用tar包的安裝方式:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.htmllinux
用yum源等其餘安裝方式:https://dev.mysql.com/doc/refman/5.7/en/linux-installation.htmlsql
我那個裏條件限制選擇的tar包方式,其餘方式的本身看官方文檔吧,更簡單。數據庫
一、去下載一個tar包:https://dev.mysql.com/downloads/mysql/,我用的CentOS7.4,各自選擇對應的版本下載就好了,包括下面步驟中的命令,不一樣系統可能也會有區別,注意根據本身系統修改。安全
二、將下載的安裝包上傳到服務器的/opt目錄下。服務器
三、新建用戶組和添加mysql用的非登陸用戶 socket
groupadd mysql;優化
useradd -r -g mysql -s /bin/false mysql;spa
四、切換到安裝路徑下,這裏使用官方推薦的路徑,而後將tar包解壓到這裏,再給安裝目錄建立個軟鏈接,剩餘的操做都是操做的軟鏈接目錄。
cd /usr/local
tar zxvf /opt/mysql-5.7.21-el7-x86_64.tar.gz;
ln -s mysql-5.7.21-el7-x86_64/ mysql
寫入環境變量
export PATH=$PATH:/usr/local/mysql/bin
五、進入軟鏈接目錄,建立文件夾和受權
cd /usr/local/mysql;
mkdir mysql-files;
chown mysql:mysql mysql-files;
chmod 750 mysql-files;
六、初始化數據庫的部署數據,用--initialize會給root生成一個默認密碼,--initialize-insecure不生成密碼,還有--basedir和--datadir參數用法同樣,這些配置能夠去cat /etc/my.cnf中查看和修改,默認配置知足個人需求我初始化就不指定了
bin/mysqld --initialize --user=mysql
結果報了個錯bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
這是缺乏包形成的,若是已經安裝了libnuma.so.1,先yum remove libnuma.so.1,而後從新安裝64位的
yum install numactl.x86_64
以後再從新執行mysql初始化命令,就能夠了,記住下面這個密碼,首次登錄要用,登錄後會再修改。
若是要用mysql_ssl_rsa_setup建立默認的SSL和RSA文件就執行
bin/mysql_ssl_rsa_setup
七、到這裏安裝就結束了,啓動服務,用推薦的mysqld_safe方式啓動,作了安全優化和服務掛了能自動重啓等功能,能夠本身查一下。
bin/mysqld_safe --user=mysql &
結果報錯了mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
這個看應該是權限問題,增長權限配置,
mkdir /var/log/mariadb/;
touch /var/log/mariadb/mariadb.log;
chown -R mysql:mysql /var/log/mariadb/
再從新執行,仍是有錯
分析/var/log/mariadb/mariadb.log日誌, Can't create/write to file '/var/run/mariadb/mariadb.pid' (Errcode: 2 - No such file or directory),一樣的處理方式
mkdir /var/run/mariadb/;
chown -R mysql:mysql /var/run/mariadb/
再次執行mysqld_safe,成功
八、登陸並修改密碼
mysql -u root -p
輸入密碼,密碼是初始化時候顯示的那個,結果,又雙叒叕報錯了。。。Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
這個問題應該是多種解決方法,例如在/tmp目錄下創建軟鏈接,修改配置文件等,我是修改的配置文件
vi /etc/my.cnf 增長下面兩行配置socket的路徑,保存以後重啓服務,再輸入用戶名密碼能登陸了
修改默認的密碼,要否則什麼操做也不能作。
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
九、mysql默認只能本機鏈接,若是須要遠程鏈接數據庫,須要配置遠程鏈接,咱們採用新增一個用戶的方式,固然你也能夠選擇修改原來的root用戶。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root的密碼' WITH GRANT OPTION;
FLUSH PRIVILEGES;
十、如須要配置開機自啓,按下面操做
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
執行chkconfig --list查看列表,
若是看到mysql的服務,而且3,4,5都是on的話則成功,若是是off,則輸入chkconfig --level 345 mysql on
到這裏從安裝到配置基本就結束了,若是沒有特殊要求,這些步驟就知足正常使用了,時間太緊張排版有點亂,畢竟不是爲了上熱門,只是平常積累,懶得排版了,有須要的湊合看吧