一、前期准备


第一步: 查看是否已装MySQL:

rpm -qa | grep -i mysql

# 如果已装过需要删除的可以执行
rpm -e rpm包的名称 (也就是上一步查出来的名字)

第二步:删除MySQL相关的文件夹

# 找到目录位置
[root@VM_0_13_centos /]# whereis mysql
mysql: /usr/bin/mysql /usr/include/mysql

# 查看有哪些位置
[root@VM_0_13_centos lib]# find / -name mysql
/data/mysql
/data/mysql/mysql

# 执行删除
rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql

第三步:检查MySQL的组和用户是否存在,如果没有则创建

[root@VM_0_13_centos /]# cat /etc/group | grep mysql
[root@VM_0_13_centos /]# cat /etc/passwd |grep mysql
[root@VM_0_13_centos /]# groupadd mysql
[root@VM_0_13_centos /]# useradd -r -g mysql mysql

第四步:查看数据分区的大小

df -ah

# 选择较大的数据分区,在其目录下进行安装

二、开始安装


第一步:在GPL开原协议的社区开源版里边下载


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

进入下载MySQL下载界面
进入下载MySQL下载界面

第二步:接着选择社区版的MySQL Server


选择社区版的MySQLServer
选择社区版的MySQLServer

第三步:接着选择操作系统和版本


查看版本信息
getconf LONG_BIT

选择操作系统和版本
选择操作系统和版本

注意事项:

  1. 因为我的操作是Centos7,所以我是这么选择;你需要根据你的操作系统选择指定的安装包。
  2. 同时你也可以选择特定的MySQL的版本。

第四步:接着下载RPM Bundle

这个看自己的选择,现在8.0版本都有些依赖,和5.5版本的已经多了一些东西。
我这里选择安装RPM Bundle

下载指定的rpm包
下载指定的rpm包

第五步:接着选择No thanks, just start my download


开始下载rpm包
开始下载rpm包

第六步:清除MySQL的分支


Centos7默认携带了MySQL的一个分支,也就是mariadb。我们既然要安装MySQL还要它干啥。

[root@VM_0_13_centos data]# rpm -qa | grep mariadb
mariadb-libs-5.5.64-1.el7.x86_64
[root@VM_0_13_centos data]# rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
[root@VM_0_13_centos data]# rpm -qa | grep mariadb

第七步:将我们下载的rpm包上传到服务器并解压:


# 没有就安装下: yum install -y lrzsz
[root@VM_0_13_centos data] rz 
[root@VM_0_13_centos data] tar xvf mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar
mysql-community-client-8.0.19-1.el7.x86_64.rpm
mysql-community-server-8.0.19-1.el7.x86_64.rpm
mysql-community-test-8.0.19-1.el7.x86_64.rpm
mysql-community-common-8.0.19-1.el7.x86_64.rpm
mysql-community-embedded-compat-8.0.19-1.el7.x86_64.rpm
mysql-community-devel-8.0.19-1.el7.x86_64.rpm
mysql-community-libs-compat-8.0.19-1.el7.x86_64.rpm
mysql-community-libs-8.0.19-1.el7.x86_64.rpm

第八步:执行安装


rpm -ivh mysql-community-{common,libs.libs-compat,client,server,devel}-8.0.19-1.el7.x86_64.rpm

# -i: 安装指定的套件档,也就是执行install
# -v: 显示指令执行过程,可以看到日志
# -h:  套件安装时列出标记,可以看到进度条
yum install mysql-community-{server,client,common,libs}-*

如果缺少依赖则安装:

yum -y install numactl

第九步:验证服务


出现下方的内容说明已经安装成功!

[root@VM_0_13_centos data]# mysql -V
mysql  Ver 8.0.19 for Linux on x86_64 (MySQL Community Server - GPL)
[root@VM_0_13_centos data]# ps -aux | grep mysql
root     18665  0.0  0.0 112712   964 pts/0    R+   16:43   0:00 grep --color=auto mysql

第十步:启停服务


[root@VM_0_13_centos data]# service mysqld start
Redirecting to /bin/systemctl start mysqld.service
[root@VM_0_13_centos data]# ps -aux | grep mysql
mysql    20496 11.5 20.5 1401268 386172 ?      Ssl  16:53   0:01 /usr/sbin/mysqld
root     20569  0.0  0.0 112712   964 pts/0    R+   16:53   0:00 grep --color=auto mysql

[root@VM_0_13_centos data]# service mysqld stop

三、其他操作


(一)修改默认密码

第一步:查看默认密码

服务刚刚安装上,MySQL会默认给你提供一个密码,这个密码在/var/log/mysqld.log文件里。

[root@VM_0_13_centos data]# vim /var/log/mysqld.log

我的是这个样子的:

查看默认密码
查看默认密码

第二步:更新默认密码

mysql> alter user root@'localhost' identified by 'Q1w2e3!@#$';
Query OK, 0 rows affected (0.02 sec)

注意事项

需要知道的是,MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格。
使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置。影响的语句和函数有:create user,grant,set password,password(),old password

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

如果你想让你的密码不那么复杂需要做以下设置。

第一步: 查看MySQL全局参数配置

mysql> SHOW VARIABLES LIKE '%validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| 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      |
+--------------------------------------+--------+
7 rows in set (0.00 sec)

可能你看这几个系统变量有点不知所措,没关系,菜菜给你解释下:

系统变量名含义
validate_password_check_user_name用户名检测,默认开启
validate_password_dictionary_file字典文件,就是要在字典规则里才能满足密码的条件。
validate_password_length密码的长度至少为8位
validate_password_mixed_case_count密码中至少有一个大写小字母
validate_password_number_count密码中至少一个数字
validate_password_special_char_count密码中至少一个特殊字符
validate_password_policy密码的安全策略
validate_password_policy参数可选值:MEDIUM或者0 、LOW或者1、STRONG或者2

级别要求:

级别要求
LOW策略仅测试密码长度,密码长度必须至少为8个字符。
MEDIUM策略添加了密码必须至少包含1个数字字符,1个小写字符,1个大写字符和1个特殊(非字母数字)字符的条件。
STRONG策略添加了长度为4或更长的密码子字符串不能匹配字典文件中的字词(如果已经指定)的条件。

所以MEDIUM级别的密码设置策略就是:不得低于8位,而且必须至少有一个大写和一个小写字母、至少一个数字和至少的一个特殊字符组成。

最基本的规则: 大写+小写+特殊字符+数字组成的8位以上密码

第二步:修改密码级别:

mysql> SET GLOBAL validate_password.policy=LOW;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @@validate_password.policy;
+----------------------------+
| @@validate_password.policy |
+----------------------------+
| LOW                        |
+----------------------------+
1 row in set (0.00 sec)

# 当级别为LOW的时候我们只需满足为8个字符就行了
# 如果想少点字符修改下validate_password_length变量就行了
mysql> ALTER USER root@'localhost' identified by '12345678';
Query OK, 0 rows affected (0.01 sec)

注意事项:

# 这是一种简单的设置密码的方式
[root@VM_0_13_centos data]# mysqladmin -uroot password 123456;

(二)自启动MySQL服务

vim /etc/rc.local

# 在下面添加
service mysqld start

或者

systemctl enable mysqld
systemctl daemon-reload

(三)查看MySQL配置文件的位置

mysql --help | grep 'Default options' -A 1

(四)修改数据库编码

第一步: 查看当前编码

mysql> show variables like '%character%';
+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | utf8mb4                        |
| character_set_connection | utf8mb4                        |
| character_set_database   | utf8mb4                        |
| character_set_filesystem | binary                         |
| character_set_results    | utf8mb4                        |
| character_set_server     | utf8mb4                        |
| character_set_system     | utf8                           |
| character_sets_dir       | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+
8 rows in set (0.00 sec)

第二步:设置编码

编辑/etc/my.cnf[mysqld]节点增加以下代码:

[mysqld]
character_set_server=utf8
init-connect='SET NAMES utf8'

(五)允许root远程访问

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

(六)基础指令

# 服务重启
systemctl restart mysqld.service

# 查看状态
systemctl status mysqld.service

# 启动服务
systemctl start mysqld.service

# 停止服务
systemctl stop mysqld.service
最后修改:2021 年 02 月 01 日 11 : 00 PM
如果觉得我的文章对你有用,请随意赞赏