目錄
yum安裝mysql5.7
MySQL 5.7主要特性:
- 更好的性能:對於多核CPU、固態硬盤、鎖有着更好的優化,每秒100W QPS已不再是MySQL的追求,下個版本能否上200W QPS才是吾等用戶更關心的
- 更好的InnoDB存儲引擎
- 更為健壯的復制功能:復制帶來了數據完全不丟失的方案,傳統金融客戶也可以選擇使用MySQL數據庫。此外,GTID在線平滑升級也變得可能
- 更好的優化器:優化器代碼重構的意義將在這個版本及以后的版本中帶來巨大的改進,Oracle官方正在解決MySQL之前最大的難題
- 原生JSON類型的支持
- 更好的地理信息服務支持:InnoDB原生支持地理位置類型,支持GeoJSON,GeoHash特性
- 新增sys庫
在mysql8.0之后加密的方式也已經改變,在使用一些工具連接時除非使用最新版,否則要更改加密方式,例子
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your password';
yum的方式安裝實際上就是下載一個rpm包,安裝這個包后就有了mysql的各種repo源,包管理器通過repo源的地址去下載安裝.
去官網可能訪問比較慢,建議使用國內同步過來的源,比如阿里雲鏡像源、清華大學鏡像源,中科大等等
可以用yum源中的mysql直接安裝,但是版本不能自由選擇
環境:
系統:centos7
#配置好yum源,包括epel源
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# yum -y install vim wget
[root@localhost ~]#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
使用官方源或者國內源安裝
1.去官網下載yum倉庫文件
官網下載連接:https://dev.mysql.com/downloads/repo/yum/
根據系統下載合適的文件


#將復制的連接地址下載
[root@localhost ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
[root@localhost ~]# ls
anaconda-ks.cfg mysql80-community-release-el7-3.noarch.rpm
###使用官方的源很慢,建議使用國內的源,清華大學的源:
https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql80-community-el7/mysql80-community-release-el7-3.noarch.rpm
2.安裝yum倉庫文件
#可是使用rpm -ivh或者是yum localinstall 去安裝,兩者實質是一樣的
[root@localhost ~]# rpm -ivh mysql80-community-release-el7-3.noarch.rpm
warning: mysql80-community-release-el7-3.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql80-community-release-el7-3 ################################# [100%]
#安裝完成后可以看到mysql的repo文件
[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo epel.repo mysql-community.repo mysql-community-source.repo
3.版本選擇
之前下載的默認開啟的是mysql8.0
[root@localhost ~]# yum repolist enabled | grep mysql
mysql-connectors-community/x86_64 MySQL Connectors Community 185
mysql-tools-community/x86_64 MySQL Tools Community 123
mysql80-community/x86_64 MySQL 8.0 Community Server 229
選擇默認安裝的版本
# 安裝 YUM 管理工具包,此包提供了 yum-config-manager 命令工具
[root@localhost ~]# yum -y install yum-utils
[root@localhost ~]# yum-config-manager --disable mysql80-community
[root@localhost ~]# yum-config-manager --enable mysql57-community
查看默認啟動的倉庫
[root@localhost ~]# yum repolist enabled | grep mysql
mysql-connectors-community/x86_64 MySQL Connectors Community 185
mysql-tools-community/x86_64 MySQL Tools Community 123
mysql57-community/x86_64 MySQL 5.7 Community Server 484
4.安裝
[root@localhost ~]# yum install -y mysql-community-server
5.設置默認配置
在/etc/my.cnf的文件中設置
[mysqld]
#配置文件根據環境自行配置,或者保持默認
#例如添加下面幾行,設置默認引擎編碼和排序規則(根據情況設置合適的)
default-storage-engine=INNODB
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
skip-character-set-client-handshake
secure_file_priv=''
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
6.啟動服務
# 啟動
systemctl start mysqld
# 查看狀態
systemctl status mysqld
# 開機自啟動
systemctl enable mysqld
# 查看監聽端口,默認 3306
ss -natl |grep 3306
7.初始化
MySQL服務器初始化(從MySQL 5.7開始):
在 MySQL 服務器初始啟動時,如果服務器的數據目錄為空,則會發生以下情況:
- MySQL 服務器已初始化。
- 在數據目錄中生成SSL證書和密鑰文件。
- 安裝並啟用該 validate_password 插件。
- 將創建一個超級用戶 帳戶
'root'@'localhost'。並會設置超級用戶的密碼,將其存儲在錯誤日志文件/var/log/mysqld.log中。
[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log
2021-01-25T04:26:33.010077Z 1 [Note] A temporary password is generated for root@localhost: *sH2qhGeN(eB
#本地登錄的root密碼: *sH2qhGeN(eB
8.修改初始密碼
使用日志中得到的密碼登錄
[root@localhost ~]# mysql -uroot -p'*sH2qhGeN(eB'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.33
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
修改密碼:
mysql> alter user root@localhost identified by '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
#太過簡單的密碼會失敗,因為不滿足密碼復雜度的要求
mysql> alter user root@localhost identified by 'Test123!';
Query OK, 0 rows affected (0.00 sec)
要設置比較簡單的密碼就需要取消密碼復雜度
編輯 my.cnf配置文件, 在 [mysqld]配置塊兒中添加如下內容
plugin-load=validate_password.so
validate-password=OFF
保存退出后,重啟服務, 修改密碼
9.遠程連接
遠程登錄還需要授權遠程登錄
Mysql默認不允許遠程登錄,我們需要設置關閉selinux或者防火牆,不關防火牆就開放3306端口;
mysql> grant all privileges on *.* to root@localhost identified by 'Test123!';
Query OK, 0 rows affected, 1 warning (0.00 sec)
#允許任意IP連接
mysql> grant all privileges on *.* to root@'%' identified by 'Test123!';
Query OK, 0 rows affected, 1 warning (0.00 sec)
#放開3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
