注意:建議安裝之前,先卸載一遍,減少失敗報錯的幾率!
1. tar.gz
1.1. 安裝
查看是否安裝mysql和mariadb(mysql的一種,具體區別自行百度)
# 查看是否安裝 mysql 和 mariadb,顯示有就卸載
[root@localhost]# rpm -qa | grep mysql
[root@localhost]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
# 卸載掉 mariadb
[root@localhost]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
在官網下載mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
使用xftp將下載好的mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz,上傳的linux中的/usr/local下
在 /usr/local 下進行解壓
# 解壓 mysql,壓縮包有點大,等待解壓
[root@localhost local]# tar -zxvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
# 重命名 mysql
[root@localhost local]# mv mysql-5.7.33-linux-glibc2.12-x86_64 mysql
# 創建一個mysql的用戶,也可以使用系統root用戶,說明 數據庫被攻擊時,不會拿到root的權限,去打亂你的linux系統
# 建議:跟着小編來操作,主要后面我會使用mysql的用戶 創建錯誤 刪除用戶命令 userdel 用戶名
[root@localhost local]# useradd -r -s /sbin/nologin mysql
# 查看mysql用戶
[root@localhost local]# id mysql
uid=997(mysql) gid=995(mysql) groups=995(mysql)
# 進入到mysql文件夾中
[root@localhost local]# cd mysql
# 創建一個 data 文件夾,用於數據庫的存放
[root@localhost mysql]# mkdir data
# 修改 data 擁有者和權限
[root@localhost mysql]# chown mysql:mysql data
[root@localhost mysql]# chmod 750 data
# 初始化mysql,得到mysql的初始化密碼
[root@localhost mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql
# 設置安全加密連接(SSL),數據傳輸采用加密形式,適用於敏感數據
[root@localhost mysql]# ./bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
# 修改mysql文件
[root@localhost mysql]# vim support-files/mysql.server
# 拷貝腳本
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysql
# 啟動mysql服務
[root@localhost mysql]# service mysql start
Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
SUCCESS!
# 登錄mysql,輸入初始化密碼
[root@localhost mysql]# mysql -uroot -p
Enter password:
錯誤
# 登錄mysql,遇到以下情況
[root@localhost mysql]# mysql -u root -p
bash: mysql: command not found...
# 一 在之前輸入 ./bin
[root@localhost mysql]# ./bin/mysql -u root -p
# 二 直接進入到 bin 目錄里敲命令
[root@localhost mysql]# cd bin
[root@localhost bin]# mysql -u root -p
# 三 配置環境變量,在最后配置
[root@localhost mysql]# vim /etc/profile
# 配置內容 若PATH有多個配置使用 : 划分
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:${MYSQL_HOME}/bin
# 執行以下命令刷新並讓配置文件生效
[root@localhost usr]# source /etc/profile
配置內容展示
# 設置mysql密碼
mysql> set password = password('123456');
# 刷新設置
mysql> flush privileges;
設置 mysql 編碼
# 先查看 mysql 的默認編碼
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+
# 退出 mysql
mysql> exit
Bye
# 設置 mysql 的編碼為utf8
[root@localhost mysql]# vim /etc/my.cnf
將以下內容覆蓋原內容 注意:復制粘貼時,第一個 # 會丟失,記得手動補上
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
重啟
# 重啟 mysql 服務
[root@localhost mysql]# service mysql restart
# 登錄 mysql 並查看編碼是否生效
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+
遠程連接
# 開啟遠程連接,在其他電腦中使用 sqlyog 進行連接訪問
mysql> grant all privileges on *.* to root@'%' identified by '123456';
# 刷新設置
mysql> flush privileges;
防火牆
# 關閉防火牆,否則sqlyog連接不上 報 2002 錯誤
[root@localhost mysql]# systemctl stop firewalld.service
# 禁用防火牆自啟動,重啟服務器時,無需在關閉防火牆
[root@localhost mysql]# systemctl disable firewalld.service
自啟動
# 設置 mysql 自啟動
[root@localhost mysql]# chkconfig --add mysql
安裝完畢!
1.2. 卸載
# 查看是否安裝了mysql
[root@localhost /]# rpm -qa | grep mysql
[root@localhost /]# find / -name mysql
/run/lock/subsys/mysql
/etc/rc.d/init.d/mysql
/usr/local/mysql
/usr/local/mysql/bin/mysql
/usr/local/mysql/include/mysql
/usr/local/mysql/data/mysql
# 關掉mysql服務
[root@localhost /]# service mysql stop
# 一一刪除即可
[root@localhost /]# rm -rf /run/lock/subsys/mysql
[root@localhost /]# rm -rf /etc/rc.d/init.d/mysql
[root@localhost /]# rm -rf /usr/local/mysql
卸載完畢!
2. rpm
2.1. 安裝
進入官網,找到mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar並下載
上傳到 linux 系統中的 /usr/local 下
# 運行命令解壓
[root@localhost local]# tar -xvf mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar
mysql-community-client-5.7.33-1.el7.x86_64.rpm
mysql-community-common-5.7.33-1.el7.x86_64.rpm
mysql-community-devel-5.7.33-1.el7.x86_64.rpm
mysql-community-embedded-5.7.33-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.33-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.33-1.el7.x86_64.rpm
mysql-community-libs-5.7.33-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.33-1.el7.x86_64.rpm
mysql-community-server-5.7.33-1.el7.x86_64.rpm
mysql-community-test-5.7.33-1.el7.x86_64.rpm
# 按照順序執行 rpm 安裝命令,以下四個rpm包即可
[root@localhost local]# rpm -ivh mysql-community-common-5.7.33-1.el7.x86_64.rpm
[root@localhost local]# rpm -ivh mysql-community-libs-5.7.33-1.el7.x86_64.rpm
[root@localhost local]# rpm -ivh mysql-community-client-5.7.33-1.el7.x86_64.rpm
[root@localhost local]# rpm -ivh mysql-community-server-5.7.33-1.el7.x86_64.rpm
# 開啟 mysql 服務
[root@localhost local]# service mysqld start
# 查看 mysql 服務狀態
[root@localhost local]# service mysqld status
# 查看初始密碼,在開啟 mysql 服務時,也就是執行 service mysqld start 命令 ,就生成了初始化密碼
[root@localhost local]# cat /var/log/mysqld.log | more
# 顯示 mysql 日志,按 enter 下一行,找到 root@localhost 后面就是密碼
密碼
# 使用初始化密碼登錄 mysql,復制初始化密碼,按住 shift + insert 鍵,復制進去,回車登錄
[root@localhost local]# mysql -uroot -p
Enter password:
# 登錄成功后,必須先修改密碼,才能執行其他配置操作,由於mysql 5.7版本系列,有默認的密碼規則,一定要符合對應的字符信息
# 這里的密碼修改,就按照小編這里的一致,特殊字符,大小寫,數字等
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '@Ch123456';
# 一定是修改初始化密碼后!查看密碼規則,並修改密碼規則
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| 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 |
+--------------------------------------+--------+
# LOW:0 | MEDIUM:1 | STRONG:2
# 0/LOW:只檢查長度
# 1/MEDIUM:檢查長度、數字、大小寫、特殊字符
# 2/STRONG:檢查長度、數字、大小寫、特殊字符字典文件
# 設置 validate_password_policy 為 MEDIUM 修改為 LOW 表示密碼強度等級
mysql> set global validate_password_policy=LOW;
# 設置 validate_password_length 為 8 修改為 6 表示密碼長度
mysql> set global validate_password_length=6;
# 最終修改密碼,建議密碼設置成123456
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
編碼
# 查看mysql編碼
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
# 退出mysql登錄,查找配置文件
[root@localhost mysql]# find / -iname '*.cnf' -print
/etc/pki/tls/openssl.cnf
/etc/my.cnf
/var/lib/mysql/auto.cnf
# 修改配置文件
[root@localhost mysql]# vim /etc/my.cnf
# 在 [mysqld] 下,添加以下兩段代碼
collation_server = utf8_general_ci
character_set_server = utf8
# 重啟 mysql 服務
[root@localhost mysql]# service mysqld restart
# 登錄 mysql 並查看編碼,顯示以下數據對比表示修改成功!
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
遠程連接
# 開啟遠程連接
mysql> grant all privileges on *.* to root@'%' identified by '123456';
# 執行生效
mysql> flush privileges;
# rpm 安裝無需配置自啟
防火牆
# 關閉防火牆,否則sqlyog連接不上 報 2002 錯誤
[root@localhost mysql]# systemctl stop firewalld.service
# 禁用防火牆自啟動,重啟服務器時,無需在關閉防火牆
[root@localhost mysql]# systemctl disable firewalld.service
查看 mysql 版本
# 查看 mysql 命令
[root@localhost mysql]# mysql --version
mysql Ver 14.14 Distrib 5.7.33, for linux-glibc2.12 (x86_64) using EditLine wrapper
安裝完畢!
2.2. 卸載
# 查看是否安裝了mysql
[root@localhost local]# pm -qa|grep mysql
mysql-community-common-5.7.33-1.el7.x86_64
mysql-community-client-5.7.33-1.el7.x86_64
mysql-community-server-5.7.33-1.el7.x86_64
mysql-community-libs-5.7.33-1.el7.x86_64
# 停止mysql的服務並刪除,使用 rpm -ev xx 進行刪除,區分安裝的反順序
[root@localhost local]# rpm -ev mysql-community-server-5.7.33-1.el7.x86_64
[root@localhost local]# rpm -ev mysql-community-client-5.7.33-1.el7.x86_64
[root@localhost local]# rpm -ev mysql-community-libs-5.7.33-1.el7.x86_64
[root@localhost local]# rpm -ev mysql-community-common-5.7.33-1.el7.x86_64
# 查看是否還有mysql遺留數據
# 數據庫目錄 /var/lib/mysql
# 配置文件 /usr/share/mysql(mysql.server命令及配置文件)
# 相關命令 /usr/bin (mysqladmin mysqldump等命令)
[root@localhost local]# find / -name mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/share/mysql
# 將上面顯示的文件夾一一刪除
[root@localhost local]# rm -rf /var/lib/mysql/
[root@localhost local]# rm -rf /usr/share/mysql
# 綜上步驟,可以將 mysql 徹底刪除干凈
卸載完畢!
3. yum
3.1. 安裝
在官網里面,找到與自己linux系統對應的rpm,並下載 說明:這里的rpm安裝后會加載出mysql的源,跟着小編走就行了哈~~~
兩種方式在linux中獲取到 rpm 安裝包,在linux中通過 yum 進行安裝
# 方式一 :將下載好的 rpm 手動移入到 linux 中
# 方式二 :直接在 linux 中,通過命令 + 下載鏈接獲取到
# 說明 : 方式一 下載 windows 上,就還需要手動拖入到 linux 中,方式二 拿到下載鏈接,在 linux 中,使用命令 + 鏈接,直接到linux中
# 使用命令網上下載資源,先到 /usr/local 文件夾中
[root@localhost local]# wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
# 下載完成后,會在當前文件下,安裝源
[root@localhost local]# rpm -ivh mysql80-community-release-el7-3.noarch.rpm
# 安裝完成后,查看新安裝的源
[root@localhost local]# yum repolist all | grep mysql
# 先取消掉默認的 mysql 8 的安裝
[root@localhost local]# yum-config-manager --disable mysql80-community
# 設置 mysql 7 的默認安裝
[root@localhost local]# yum-config-manager --enable mysql57-community
# 安裝 mysql 服務,此過程漫長,默認安裝 mysql 5.7 系列最新的版本
[root@localhost local]# yum install mysql-community-server
# 開啟 mysql 服務
[root@localhost local]# systemctl start mysqld.service
# 獲取初始化密碼,在 /var/log/mysqld.log 中獲取
[root@localhost local]# grep "temporary password" /var/log/mysqld.log
# 使用初始化密碼登錄 mysql
[root@localhost local]# mysql -u root -p
Enter password:
密碼
# 登錄成功,修改密碼,當前有默認的密碼規則
mysql> set password='@Ch123456';
# 更改 mysql 密碼規則
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| 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 |
+--------------------------------------+--------+
# LOW:0 | MEDIUM:1 | STRONG:2
# 0/LOW:只檢查長度
# 1/MEDIUM:檢查長度、數字、大小寫、特殊字符
# 2/STRONG:檢查長度、數字、大小寫、特殊字符字典文件
# 設置 validate_password_policy 為 MEDIUM 修改為 LOW 表示密碼強度等級
mysql> set global validate_password_policy=LOW;
# 設置 validate_password_length 為 8 修改為 6 表示密碼長度
mysql> set global validate_password_length=6;
# 查看是否生效
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 6 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
# 最終修改密碼,建議密碼設置成123456
mysql> set password='123456';
編碼
# 查看mysql編碼
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
# 退出mysql登錄,查找配置文件
[root@localhost mysql]# find / -iname '*.cnf' -print
/etc/pki/tls/openssl.cnf
/etc/my.cnf
/var/lib/mysql/auto.cnf
# 修改配置文件
[root@localhost mysql]# vim /etc/my.cnf
# 在 [mysqld] 下,添加以下兩段代碼
collation_server = utf8_general_ci
character_set_server = utf8
# 重啟 mysql 服務
[root@localhost mysql]# service mysqld restart
# 登錄 mysql 並查看編碼,顯示以下數據對比表示修改成功!
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
遠程連接
# 開啟遠程連接
mysql> grant all privileges on *.* to root@'%' identified by '123456';
# 開啟遠程時報錯,以下提示信息,請注意
# Your password does not satisfy the current policy requirements 當前密碼不符合規則
# 解決方案 重新執行一遍 改變密碼的規則的代碼
# 設置 validate_password_policy 為 MEDIUM 修改為 LOW 表示密碼強度等級
mysql> set global validate_password_policy=LOW;
# 設置 validate_password_length 為 8 修改為 6 表示密碼長度
mysql> set global validate_password_length=6;
# 查看是否生效
mysql> SHOW VARIABLES LIKE 'validate_password%';
# 執行生效
mysql> flush privileges;
# yum 安裝無需配置自啟
防火牆
# 關閉防火牆,否則sqlyog連接不上 報 2002 錯誤
[root@localhost mysql]# systemctl stop firewalld.service
# 禁用防火牆自啟動,重啟服務器時,無需在關閉防火牆
[root@localhost mysql]# systemctl disable firewalld.service
查看 mysql 版本
# 查看 mysql 命令
[root@localhost mysql]# mysql --version
mysql Ver 14.14 Distrib 5.7.33, for linux-glibc2.12 (x86_64) using EditLine wrapper
安裝完畢!
3.2. 卸載
# 查看是否安裝了mysql
[root@localhost local]# pm -qa|grep mysql
mysql-community-client-5.7.34-1.el7.x86_64
mysql-community-common-5.7.34-1.el7.x86_64
mysql-community-devel-5.7.34-1.el7.x86_64
mysql-community-libs-5.7.34-1.el7.x86_64
mysql80-community-release-el7-3.noarch
mysql-community-server-5.7.34-1.el7.x86_64
# 停止mysql的服務
[root@localhost local]# systemctl stop mysqld.service
# 卸載 mysql,但 mysql80-community-release-el7-3.noarch 是mysql源,無需卸載,后續使用到 yum 安裝,就需要它的源進行操作
[root@localhost local]# yum -y remove mysql-community-client-5.7.34-1.el7.x86_64 mysql-community-common-5.7.34-1.el7.x86_64 mysql-community-devel-5.7.34-1.el7.x86_64mysql-community-libs-5.7.34-1.el7.x86_64 mysql-community-server-5.7.34-1.el7.x86_64
# 查看是否還有mysql遺留數據
# 數據庫目錄 /var/lib/mysql
# 配置文件 /usr/share/mysql(mysql.server命令及配置文件)
# 相關命令 /usr/bin (mysqladmin mysqldump等命令)
[root@localhost local]# find / -name mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/share/mysql
# 將上面顯示的文件夾一一刪除
[root@localhost local]# rm -rf /var/lib/mysql/
[root@localhost local]# rm -rf /usr/share/mysql
# 綜上步驟,可以將 mysql 徹底刪除干凈
說明
# rpm 安裝適用於手殘黨,安裝位置固定,環境變量無需配置
# tar 安裝比較自由,隨意安裝在哪里,只需在環境配置文件,配置mysql的安裝位置信息等即可!
# yum 安裝使用多個版本資源,直接聯網安裝下載
# yum 和 rpm 都多了密碼規則的修改,其他沒什么變化
# 綜上都可以安裝好mysql環境,編寫不易,轉載請標明出處