Linux環境下通過壓縮包方式安裝MySQL5.7
阿新 • • 發佈:2022-03-27
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!