Centos下MySQL快速安装

448 阅读3分钟

安装

下载MySQL官方仓库

这里使用的是MySQL 8.0.17

wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm

安装MySQL仓库

yum -y install mysql80-community-release-el7-3.noarch.rpm

安装MySQL

这里安装的是社区版本,也就是免费版本。

yum -y install mysql-community-server

因为有400多m,所以需要花一点时间,耐心等待。

查看版本

[root@iZbp1b5bosh5hqwp4xnk3lZ ~]$ mysql --version
mysql  Ver 8.0.19 for Linux on x86_64 (MySQL Community Server - GPL)

配置

使用这种两种命令都可以操作mysql

  • systemctl {start|stop|restart|status} mysqld
  • service mysqld {start|stop|restart|status}

启动

systemctl start mysqld

查看状态

systemctl status mysqld

显示active (running)代表已经启动成功

● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 二 2020-02-18 12:38:43 CST; 16min ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 14487 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 14564 (mysqld)
   Status: "Server is operational"
   CGroup: /system.slice/mysqld.service
           └─14564 /usr/sbin/mysqld
​
218 12:38:35 iZbp1b5bosh5hqwp4xnk3lZ systemd[1]: Starting MySQL Server...
218 12:38:43 iZbp1b5bosh5hqwp4xnk3lZ systemd[1]: Started MySQL Server.

默认密码 MySql安装时会把默认密码存在log,在/var/logo/mysqld.log中可以找到 root@localhost后面就是密码

#查找密码
[root@iZbp1b5bosh5hqwp4xnk3lZ ~] grep "password" /var/log/mysqld.log
2019-02-18T04:38:38.941142Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: C2ZF?p.*uju9

登录

登录本机的MySQL可以省略-h

#-u代表用户名 -h代表主机地址 -p代表使用密码
mysql -u root -h localhost -p

在没有修改默认密码的情况操作数据库会出现以下提示,提示需要修改密码才能操作。

mysql> status
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

修改默认密码

#最后记得加上分号
mysql-> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

密码太简单会有以下提示

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

密码必须要8位,而且要同时有数字大小写字母和特殊符号。 成功示例如下:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'A@123456';
Query OK, 0 rows affected (0.01 sec)

重置密码

忘记密码的时候需要重置密码

先停止MySQL

sudo systemctl stop mysql

启动MySQL

这样启动后登录时不需要输入密码

sudo mysqld_safe --skip-grant-tables &

登录并更改密码

#登录,因为不需要密码,所以不加-p
mysql -u root
#修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'A@123456';
#需要刷新权限表(grant-tables)
mysql> FLUSH PRIVILEGES;

退出

mysql> exit;

修改密码安全相关设置

查看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      |
+--------------------------------------+--------+

修改MySQL全局变量

#修改最小长度为5
mysql> set global validate_password.length=5;
Query OK, 0 rows affected (0.00 sec)

默认编码

新版本MySQL已经将默认编码从latin1改为utf-8 mb4,所以我们不需要再更改。 utf-8 mb4相较于utf-8 支持emoji表情符.

打开端口

MySQL默认监听的端口是3306,需要在防火墙中打开。

#开放3306端口
[root@centos7 ~] firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
#重启防火墙,使其生效
[root@centos7 ~] firewall-cmd reload
success
#查看3306端口是否成功打开
[root@centos7 ~] firewall-cmd --query-port=3306/tcp

官方文档: dev.mysql.com/doc/refman/…