mysql安裝和遇到的問題處理


遇到需要在新系統上安裝MySQL的事情,簡單記錄一下過程。

聲明:最好的文檔是官方文檔,我也是看的官方文檔,只是中間遇到點問題,記錄一下出現的問題和處理方式。貼一些官方文檔地址。

用tar包的安裝方式:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html

用yum源等其他安裝方式:https://dev.mysql.com/doc/refman/5.7/en/linux-installation.html

 

我那個里條件限制選擇的tar包方式,其他方式的自己看官方文檔吧,更簡單。

1、去下載一個tar包:https://dev.mysql.com/downloads/mysql/,我用的CentOS7.4,各自選擇對應的版本下載就行了,包括下面步驟中的命令,不同系統可能也會有區別,注意根據自己系統修改。

 

2、將下載的安裝包上傳到服務器的/opt目錄下。

3、新建用戶組和添加mysql用的非登錄用戶 

    groupadd mysql;

    useradd -r -g mysql -s /bin/false mysql;

4、切換到安裝路徑下,這里使用官方推薦的路徑,然后將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

5、進入軟連接目錄,創建文件夾和授權

    cd /usr/local/mysql;

    mkdir mysql-files;

    chown mysql:mysql mysql-files;

    chmod 750 mysql-files;

6、初始化數據庫的部署數據,用--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

7、到這里安裝就結束了,啟動服務,用推薦的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,成功

 

8、登錄並修改密碼

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 '新密碼';

9、mysql默認只能本機連接,如果需要遠程連接數據庫,需要配置遠程連接,我們采用新增一個用戶的方式,當然你也可以選擇修改原來的root用戶。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root的密碼' WITH GRANT OPTION;
FLUSH PRIVILEGES;

10、如需要配置開機自啟,按下面操作

    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

 

到這里從安裝到配置基本就結束了,如果沒有特殊要求,這些步驟就滿足正常使用了,只是日常積累,懶得排版了,有需要的湊合看吧

-----------------------------------------------------

后來又裝MariaDB10.0.21的時候,上面的初始化密碼命令不太好使了,又換了一種直接更新表的方法,例如下面是將root的密碼改成xxxxx,測試是能成功的

mysql -uroot <<EOF
  USE mysql;
  UPDATE user SET authentication_string=password('xxxxx'),plugin='mysql_native_password' WHERE user='root';
  GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'xxxxx' WITH GRANT OPTION;
  FLUSH PRIVILEGES;
EOF

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM