centos 7 安裝 mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz 詳細步驟


1.卸載Linux系統上自帶的mysql插件(old版本)
 查找mysql相關安裝:

rpm -qa|grep -i mysql

可能會出現以下的一個或多個,沒有更好,說明你的系統很干凈,但是以防萬一,不管怎樣下面的操作還是檢查一變

perl-DBD-MySQL-4.013-3.el6.x86_64

mysql-libs-5.1.71-1.el6.x86_64

qt-mysql-4.6.2-26.el6_4.x86_64

mysql-5.1.71-1.el6.x86_64

mysql-server-5.1.71-1.el6.x86_64

mysql-community-common-5.7.23-1.el7.x86_64

如果出現了上面的一個或多個,也不用擔心,使用卸載命令,有幾個干掉幾個!

卸載命令:rpm –ev {包名},如:

yum remove 軟件名

rpm -ev mysql-community-common-5.7.23-1.el7.x86_64

查找老版本mysql相關的安裝目錄命令:

find / -name mysql

若查找到相關目錄使用命令:rm –rf {目錄名}

最后使用命令:rpm -qa|grep -i mysql,重新檢查一遍系統中是否安裝mysql。

2.安裝包處理
新建software目錄,切換到software目錄,下載到該目錄:

mkdir /root/software

cd/root/software

下載:(600M左右,下載需要點時間)

                                                                                   (mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz)
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

注:問題?

-bash: wget: command not found

然后在執行就可以了,或者可以去官網下載。

官網下載

地址:

https://dev.mysql.com/downloads/mysql/

 

下載完 

解壓到當前目錄:

tar -xzvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

mysql主目錄處理
在software目錄下移動文件到/usr/local/mysql:

mv mysql-5.7.23-linux-glibc2.12-x86_64/usr/local/mysql

cd/usr/local/mysql

mkdir data

 

主目錄權限處理
查看組和用戶情況

cat /etc/group | grep mysql
cat /etc/passwd |grep mysql

 

若存在,則刪除原mysql用戶:userdel -r mysql,會刪除其對應的組和用戶。

在查看就會發現沒有,說明你已經刪掉了。


創建mysql組和mysql用戶

groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /usr/local/mysql

創建配置文件及相關目錄
修改配置文件:/etc/my.cnf,配置不對的話,后面初始化不全,會拿不到默認密碼。

vim /etc/my.cnf

修改內容:

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
socket=/tmp/mysql.sock
pid-file=/tmp/mysqld/mysqld.pid
character-set-server = utf8
log-error=/var/log/mysqld.log

:wq! 保存退出。

創建文件/tmp/mysql.sock:設置用戶組及用戶,授權

cd /tmp

touch mysql.sock

chown mysql:mysql mysql.sock

chmod 755 mysql.sock

創建文件/tmp/mysqld/mysqld.pid:

mkdir mysqld

cd mysqld

touch mysqld.pid

cd ..

chown -R mysql:mysql mysqld

cd mysqld

chmod 755 mysqld.pid

創建文件/var/log/mysqld.log:

 

touch /var/log/mysqld.log

chown -R mysql:mysql /var/log

cd log

chmod 755 mysqld.log

配置文件其他參數,僅供參考:https://blog.csdn.net/u011823494/article/details/74548642

安裝和初始化數據庫
進入bin目錄:

cd /usr/local/mysql/bin/

初始化數據庫:

./mysqld --initialize --user=mysql --basedir=/usr/local/mysql--datadir=/usr/local/mysql/data

注:

這時會出現錯誤

./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解決方案:

 yum install -y libaio

報錯:./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
解決:yum -y install numactl


報錯:Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
解決: rm -rf /etc/my.cnf

 

在執行./mysqld --initialize --user=mysql --basedir=/usr/local/mysql--datadir=/usr/local/mysql/data

安全啟動:

./mysqld_safe --user=mysql &

是否啟動成功,可以通過查看mysql進程,ps -ef | grep mysql

默認密碼在mysqld.log日志里, 找到后保存到安全的地方:

cat /var/log/mysqld.log

其中root@localhost: 后面的就是默認密碼,后面登錄用.(如果找不到可能默認是空,登錄時密碼直接回車,否則可能安裝有問題)

進入bin目錄:

cd /usr/local/mysql/bin/

登錄mysql:

./mysql -u root -p

拷貝或者輸入mysqld.log中獲得的默認密碼,即可進入mysql命令客戶端。

但是,若輸入相關命令,則會提示你修改用戶密碼(注意后面一定要加;)。

show databases;

報錯:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

解決:

1、 修改用戶密碼
mysql> alter user 'root'@'localhost' identified by 'youpassword';  

或者       

mysql> set password=password("youpassword");
2、刷新權限
mysql> flush privileges;

 

 

假設密碼修改為xh2018

mysql> set password=password("xh2018");

設置遠程登錄權限

mysql>grant all privileges on *.* to 'root'@'%' identified by 'xh2018';

立即生效:

mysql> flush privileges;

退出quit 或者 exit;

mysql> quit;

 

至此,mysql安裝流程已結束。

開機服務啟動設置:

把support-files/mysql.server 拷貝為/etc/init.d/mysql:

cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

查看是否拷貝成功

查看mysql服務是否在服務配置中

chkconfig --list mysql

若沒有,則把mysql注冊為開機啟動的服務,然后在進行查看

chkconfig --add mysql

chkconfig --list mysql

啟動 或 停止

service mysql start

service mysql stop

 

創建快捷方式:
服務啟動后,直接運行mysql -u root -p即可登錄,不需要進入到對應的目錄。

ln -s /usr/local/mysql/bin/mysql /usr/bin

 

使用Navicat 連接數據庫時會出現

說明你的防火牆沒有關。

解決方案:

//臨時關閉 systemctl stop firewalld

//禁止開機啟動

systemctl disable firewalld

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
--------------------- 
 

mysql升級5.7版本以后,安全性大幅度上升。

但是呢。。。帶復雜的記不住。額額。。本來腦子就不好使,還記那么復雜,尤其是本地就更沒必要,還是root方便。

進入mysql

mysql> SHOW VARIABLES LIKE 'vali%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
6 rows in set (0.00 sec)

根據官方文檔可以發現策略為1,即MEDIUM 

5.7默認會安裝這個插件,若沒有安裝,則SHOW VARIABLES LIKE 'vali%'則會返回空。對應參數的value值也為默認值,以下是這些值的解釋

 validate_password_length 8 # 密碼的最小長度,此處為8。
 validate_password_mixed_case_count 1 # 至少要包含小寫或大寫字母的個數,此處為1。
 validate_password_number_count 1 # 至少要包含的數字的個數,此處為1。
 validate_password_policy MEDIUM # 強度等級,其中其值可設置為0、1、2。分別對應:
                           【0/LOW】:只檢查長度。
                           【1/MEDIUM】:在0等級的基礎上多檢查數字、大小寫、特殊字符。
                           【2/STRONG】:在1等級的基礎上多檢查特殊字符字典文件,此處為1。
 validate_password_special_char_count 1 # 至少要包含的個數字符的個數,此處為1。
所以你更改密碼必須滿足:數字、小寫字母、大寫字母 、特殊字符、長度至少8位
怎么改呢??

想要關閉這個插件,則在配置文件中加入 validate_password=off   並重啟mysqld即可:

在 vim /etc/my.cnf配置文件中增加

[mysqld]
validate_password=off
然后重啟mysql 就 ok了.


重新啟動mysqld
#/etc/init.d/mysqld restart ( service mysqld restart )
重如果想把密碼改回來 進入mysql 執行 5.7的數據庫沒有了password字段 用的是authentication_string字段
mysql> update mysql.user set authentication_string=password('root') where user='root' ;


最后你還要設置一下過期時間,以防止密碼失效。

在/etc/my.cnf配置文件中增加


[mysqld]
default_password_lifetime=0
或者直接通過命令設置

ALTER USER 'script'@'localhost' PASSWORD EXPIRE NEVER

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

防火牆
shell> firewall-cmd --zone=public --add-port=3306/tcp --permanent  # --permanent選項為永久生效,沒有此參數重啟后失效
shell> firewall-cmd --reload  #重新加載防火牆

將MySQL數據庫的動態鏈接庫共享至系統鏈接庫

一般MySQL數據庫還會被類似於PHP等服務調用,所以我們需要將MySQL編譯后的lib庫文件添加至當前Linux主機鏈接庫 /etc/ld.so.conf.d/
下,這樣MySQL服務就可以被其它服務調用了。

  1.  
    [root@snails mysql- 5.7.13]# ldconfig |grep mysql
  2.  
    [root@snails mysql- 5.7.13]# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
  3.  
    [root@snails mysql- 5.7.13]# ldconfig
  4.  
    [root@snails mysql- 5.7.13]# ldconfig -v |grep mysql
  5.  
    ldconfig: 無法對 /libx32 進行 stat 操作: 沒有那個文件或目錄
  6.  
    ldconfig: 多次給出路徑“/usr/lib”
  7.  
    ldconfig: 多次給出路徑“/usr/lib64”
  8.  
    ldconfig: 無法對 /usr/libx32 進行 stat 操作: 沒有那個文件或目錄
  9.  
    /usr/lib64/mysql:
  10.  
    libmysqlclient.so. 18 -> libmysqlclient.so.18.0.0
  11.  
    /usr/ local/mysql/lib:
  12.  
    libmysqlclient.so. 20 -> libmysqlclient.so.20.3.0

配置MySQL環境變量:

vim /root/.bash_profile

找到下面一行:

PATH=$PATH:$HOME/bin

修改為:

PATH=$PATH:$HOME/bin:/var/mysql/bin


原文地址:https://blog.csdn.net/sqzhao/article/details/88058536


免責聲明!

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



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