Centos8安装MySQL(亲测有效)

古城微笑少年丶 2022-11-08 14:15 459阅读 0赞

1、下载压缩包:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar

2、上传到服务器

命令:rz

3、解压

  1. tar -xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar

4、按顺序安装

  1. rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm
  2. rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm
  3. rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm
  4. rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm

如果安装过程中出现这个错误就在后面添加 —force —nodeps,这可能是由于yum安装了旧版本的GPG keys造成的

20210313222752530.png

5、配置·MySQL

  1. vim /etc/my.cnf

添加这三行

  1. skip-grant-tables
  2. character_set_server=utf8
  3. init_connect='SET NAMES utf8'

skip-grant-tables:跳过登录验证

character_set_server=utf8:设置默认字符集UTF-8

init_connect=’SET NAMES utf8’:设置默认字符集UTF-8

6、设置开机启动

  1. systemctl start mysqld.service

启动mysql

  1. mysql

设置密码

  1. update mysql.user set authentication_string=password('123456') where user='root';

立即生效

  1. flush privileges;

退出mysql

  1. exit

停止mysql服务

  1. systemctl stop mysqld.service

重启mysql服务

  1. systemctl start mysqld.service

查看mysql运行状态

  1. systemctl status mysqld.service

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMDM3NDc4_size_16_color_FFFFFF_t_70

如果输入其他命令出错,再重设密码

  1. set password=password('123456');

查看密码策略

  1. SHOW VARIABLES LIKE 'validate_password%';

20210313230750220.png

1)、validate_password_length 固定密码的总长度;
2)、validate_password_dictionary_file 指定密码验证的文件路径;
3)、validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
4)、validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
5)、validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;

设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW

  1. set global validate_password_policy=LOW;

1fa40679a4e9d6cce4d581109bd4f0ef.png

密码长度改为6位

  1. set global validate_password_length=6;

查看端口号

show global variables like ‘port’;

开放端口号

  1. firewall-cmd --zone=public --add-port=3306/tcp --permanent

重启防火墙

  1. firewall-cmd --reload

开启mysql的远程访问

  1. mysql> grant all privileges on *.* to 'root'@'%' identified by '你的密码' with grant option;

然后再输入下面命令,刷新授权

  1. mysql> flush privileges;

此步操作,退出mysql也可以。

如果不能远程连接MySQL数据库,可能导致的原因有三点:

1、本机上防火墙没有开放3306端口,需要自己配置入站规则

  • 开放端口:firewall-cmd —zone=public —add-port=3306/tcp —permanent

    然后重启防火墙:firewall-cmd —reload

  • 或者关闭本机防火墙

关闭防火墙命令:systemctl stop firewalld

2、linux 服务器上的 iptables 防火墙没有开放3306端口, 或者关闭服务器上的防火墙。

打开/etc/sysconfig/iptables

在”-A INPUT –m state —state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:

-A INPUT -m state —state NEW -m tcp -p -dport 3306 -j ACCEPT

3、没有给mysql用户远程权限,

  • mysql> USE mysql; — 切换到 mysql DB

    Database changed

  • mysql> SELECT User, Password, Host FROM user; — 查看现有用户,密码及允许连接的主机

    +———+—————+—————-+
    | User | Password | Host |
    +———+—————+—————-+
    | root | | localhost |
    +———+—————+—————-+
    1 row in set (0.00 sec)

  • mysql> grant all privileges on *.* to ‘root’@’%’ identified by ‘123123’ with grant option;
  • mysql> — 只有一个默认的 root 用户, 密码为空, 只允许 localhost 连接
  • mysql> — 下面我们另外添加一个新的 root 用户, 密码为123123, 只允许 192.168.1.100 连接
  • mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.1.100’ IDENTIFIED BY ‘123123’ WITH GRANT OPTION;
  • mysql> — @’192.168.1.100’可以替换为@‘%’就可任意ip访问,当然我们也可以直接用 UPDATE 更新 root 用户 Host, 但不推荐, SQL如下:
  • mysql> — UPDATE user SET Host=’192.168.1.100’ WHERE User=’root’ AND Host=’localhost’ LIMIT 1;
  • mysql> flush privileges;

    Query OK, 0 rows affected (0.00 sec)

如果前面三种还是不能解决的话,并且你是阿里云服务器,那么你看这里↓↓↓

进入云服务器管理控制台—》网络与安全—》安全组—》

创建安全组—》添加访问规则

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMDM3NDc4_size_16_color_FFFFFF_t_70 1

这个时候你再去连接数据库,连接成功~~~

发表评论

表情:
评论列表 (有 0 条评论,459人围观)

还没有评论,来说两句吧...

相关阅读