1. 程式人生 > 其它 >Linux環境下通過壓縮包方式安裝MySQL5.7

Linux環境下通過壓縮包方式安裝MySQL5.7

Linux環境下通過壓縮包方式安裝MySQL5.7

1、安裝前準備

MySQL5.7的gz壓縮包(可以通過wget下載 或者 直接下載到本地傳輸給虛擬機器),點選進入下載地址

CentOS7 聯網

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens32
ONBOOT = yes即可
[root@localhost ~]# service network restart

#防火牆(Selinux)預設是是開啟的,這個你基本都是需要關閉
[root@localhost ~]# getenforce 
#如果為disabled 就是已經關閉,如果enforce 就是強制的模式

#(1)不重啟的頭閉 [root@localhost ~]# setenforce 0   #重啟電腦後失效
#(2)重啟電腦的關閉 [root@localhost ~]# vi /etc/selinux/config
SELINUX=enforce 改成disabled就可以了,重啟電腦,永久生效

解除安裝殘留或者已有的MySQL

# rpm方式解除安裝
# 查詢安裝了是否mariadb , mysql
rpm -qa | grep mariadb

# 解除安裝mariadb
sudo rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 

# 注意,有可能mariadb要某些依賴才能解除安裝,要麼安裝完依賴再解除安裝,或者如下,強制解除安裝:
sudo rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps

2.建立所需目錄

/usr/local/目錄下建立存放MySQL的目錄

mkdir /usr/local/database/mysql 

將下載好的壓縮包移動到自定義目錄下解壓,並重命名

mv  /home/joshuay/mysql-5.7.35-el7-x86_64.tar.gz  /usr/local/database/mysql/
cd  /usr/local/database/mysql/
tar -zxvf  mysql-5.7.35-el7-x86_64.tar.gz   #解壓
mv  mysql-5.7.35-el7-x86_64 mysql57         #為解壓目錄重新命名
mkdir mysql57/data                          #在mysql57新建data目錄

3.新增mysql使用者組,並在mysql使用者組中新增mysql使用者

groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /usr/local/database/mysql      #將mysql目錄的許可權賦予mysql使用者

4.修改 my.cnf

進入 /etc 目錄下檢視是否存在my.cnf (不存在也無所謂,反正也是要新建一個的)

mv my.cnf my.cnf.old
touch my.cnf  # 如果不存在my.cnf,直接這步
vi my.cnf #將下面配置複製貼上, Esc 然後 :wq 儲存退出

my.cnf 配置如下

[mysqld]
# 設定3306埠
port=3306
# 設定mysql的安裝目錄
basedir=/usr/local/database/mysql/mysql57
# 設定mysql資料庫的資料的存放目錄
datadir=/usr/local/database/mysql/mysql57/data
#設定mysql日誌存放檔案
log-error=/var/log/mysqld.log
#設定sock存放檔案
socket = /var/lib/mysql/mysql.sock
# 服務端使用的字符集預設為UTF8
character-set-server=utf8
# 允許最大連線數
max_connections=10000
# 允許連線失敗的次數。這是為了防止有人從該主機試圖攻擊資料庫系統
max_connect_errors=10
# 建立新表時將使用的預設儲存引擎
default-storage-engine=INNODB

[mysql]
# 設定mysql客戶端預設字符集
default-character-set=utf8

[client]
#設定sock存放檔案
socket = /var/lib/mysql/mysql.sock
# 設定mysql客戶端連線服務端時預設使用的埠
port=3306
default-character-set=utf8

5.初始化MySQL

進入到 mysql57 目錄使用如下命令 (注意 我們basedir和datadir不一定相同,以你的自定義路徑為準)

cd /usr/local/database/mysql/mysql57  
#下面是一條完整的初始化指令
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/database/mysql/mysql57 --datadir=/usr/local/database/mysql/mysql57/data

初始化成功,你會在最後一行獲得root@localhost: 生成的密碼(兩邊沒有空格),記得儲存

6.初始化ssl

./bin/mysql_ssl_rsa_setup #初始化
.......Supplied value : /var/lib/mysql # 如果出現這個提示,就使用以下命令新建目錄
mkdir /var/lib/mysql
./bin/mysql_ssl_rsa_setup  #再次初始化

7.將MySQL新增至服務,並配置其環境變數

cp support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
chkconfig --add /etc/init.d/mysqld
chkconfig mysqld on
vi /etc/profile
#根據自己路徑配置變數寫入檔案末尾,儲存退出 export PATH=$PATH:/usr/local/database/mysql/mysql57/bin
source /etc/profile

8.進入MySQL並修改密碼

mysql -uroot -p  #回車,然後輸入前面初始化生成的密碼

mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

如果輸入密碼回車後出現,沒出現就按照上面SQL改密碼即可:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

[root@localhost mysql57]# service  mysqld restart
/etc/init.d/mysqld: line 239: my_print_defaults: command not found
/etc/init.d/mysqld: line 239: my_print_defaults: command not found
 ERROR! MySQL server PID file could not be found!
/etc/init.d/mysqld: line 239: my_print_defaults: command not found
/etc/init.d/mysqld: line 259: cd: /usr/local/mysql: No such file or directory
Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)

[root@localhost mysql57]# vi /etc/init.d/mysqld
......將如下路徑補全,儲存退出
basedir=/usr/local/database/mysql/mysql57
datadir=/usr/local/database/mysql/mysql57/data
......

[root@localhost mysql57]# service  mysqld restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS!