david2tdw / blog

学习记录
1 stars 1 forks source link

[linux] centOS7中mysql8配置 #203

Open david2tdw opened 3 years ago

david2tdw commented 3 years ago

linux无法访问网络:

cd /etc/sysconfig/network-scripts ls -a
vi ifcfg-ensxxx (ifcfg- 开头的文件)
ONBOOT=no改为yes
再输入 :wq ,保存后退出
重新启动网络
service network restart

CentOS 7运行yum出错:Cannot find a valid baseurl for repo: base/7/x86_64

下载,安装mysql8.0

cd /tmp

wget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

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

yum -y install mysql-community-server

centos7 安装mysql

CentOS7安装MySQL CentOS7安装mysql CentOS 7镜像下载 Linuxt mysql下载地址

david2tdw commented 3 years ago

首先启动MySQL

[root@localhost ~]# systemctl start  mysqld.service

查看MySQL运行状态

[root@localhost ~]# systemctl status mysqld.service

查看mysqlroot用户的密码

[root@localhost ~]# grep "password" /var/log/mysqld.log

如下命令进入数据库:

[root@localhost ~]# mysql -uroot -p

如果密码登录不进去: 执行:

vi /etc/my.cnf

在[mysqld]下加上 skip-grant-tables,如:

[mysqld] 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock 
skip-grant-tables 

重启mysql

service mysqld restart 

用以下命令登陆mysql后就可以修改密码

mysql -u root

mysql> update mysql.user set authentication_string="123456" where user="root";
mysql> flush privileges; #刷新权限(必须步骤)
mysql> select host,user,authentication_string from mysql.user; #查询密码是否生效:
mysql> quit #推出

mysql>mysql - uroot -p #如果依然登录不进去,重启linux系统

linux下mysql5.7初始密码查看及忘记密码重置 CentOS7安装MySQL

david2tdw commented 3 years ago

安装:

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

卸载:

yum remove mysql

升级制定软件:

yum update mysql 
david2tdw commented 3 years ago

yum: -h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)

yum -y install mysql-community-server

Linux yum 命令

david2tdw commented 3 years ago

成功的安装,参考下面这篇文章: CentOS 7安装MySQL8.0

david2tdw commented 3 years ago

修改用户密码要使用下面这个语句:

alter user 'root'@'localhost' identified by '12345678';

下面这个写法是错误的:

mysql> update mysql.user set authentication_string="123456" where user="root";

修改后密码应该是加密的而不是明文密码。

david2tdw commented 3 years ago

切换数据库:

use mysql;

查看数据库:

show databases;

查看当前登录用户:

select current_user;
david2tdw commented 3 years ago

navicat 链接Oracle VM virtualbox中的mysql:

  1. 检查虚拟机IP在本地是否可以ping 通过

    ifconfig
    ping 192.168.3.172
  2. 检查虚拟机Mysql的端口是否对外开放

    [root@localhost ~]# mysql -u root -p
    mysql> show variables like '%port%';
  3. 查看虚拟机的3306端口是否开放 cmd下执行

    telnet 172.21.0.4 3306

    [控制面板 - 程序 - 程序和功能 - 打开或关闭windows功能 - Telnet Client]

打开linux的3306端口

  1. 首先安装iptables

    sudo yum install iptables-services
  2. 开启iptables

    sudo systemctl enable iptables 
    sudo systemctl enable ip6tables 
  3. 启动服务

    sudo systemctl start iptables 
    sudo systemctl start ip6tables
  4. 打开指定端口:

    vi /etc/sysconfig/iptables
  5. 进入编辑页面,在指定位置新增以下配置。放在 -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT 后面

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
  6. 修改完保存退出,重启网卡服务

    service iptables restart
  7. mysql给外来主机访问权限

    [root@localhost ~]# mysql -u root -p
    mysql> use mysql;
    mysql>update user set host = '%' where user = 'root';
    mysql>select host, user from user;
    mysql> FLUSH   PRIVILEGES;
  8. 验证远程连接虚拟机数据库访问 在windows中的cmd输入

    telnet 172.21.0.4 3306

如何在本地远程连接虚拟机上CentOS7的mysql

david2tdw commented 3 years ago

上面的步骤完成后,navicat 连接 CentOS7 中 MySQL 8.0.22 报错1251问题:

ALTER USER 'root'@'%' PASSWORD EXPIRE NEVER;

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'XXXXX';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'XXX';
FLUSH PRIVILEGES;

MySQL 8.0 设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

SHOW VARIABLES LIKE 'validate_password%';
set global validate_password.policy=0;
FLUSH PRIVILEGES;
select host,user,authentication_string from mysql.user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'XXXXX';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'XXX';

数据库笔记——Navicat连接MySQL数据库的1251错误 MySQL 8.0 设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

david2tdw commented 3 years ago

查看user、host、加密策略等信息

use mysql;
select user,host,plugin,authentication_string from user;

查找数据库安装目录

find / -type d -name mysql

查看目录具体信息:

ll -tr | grep mysql
david2tdw commented 3 years ago

重启电脑后需要重新启动iptables服务:

sudo systemctl start iptables 
sudo systemctl start ip6tables
david2tdw commented 3 years ago

创建用户并赋予权限:

查询用户账号信息:

select host, user, authentication_string from mysql.user; 

查询用户权限信息:

show grants for "tdw"@"localhost";

创建用户:

create user "tdw"@"%" identified by "密码";

navicat连接,报错1251问题:

ALTER USER 'tdw'@'%' PASSWORD EXPIRE NEVER;
SHOW VARIABLES LIKE 'validate_password%';
set global validate_password.policy=0;
FLUSH PRIVILEGES;

修改密码加密方式:

ALTER USER 'tdw'@'%' IDENTIFIED WITH mysql_native_password BY 'XXXXX';

给用户权限:

不需要执行 FLUSH PRIVILEGES;命令

grant all on "数据库名".* to 'tdw'@'%';

13.7.1.6 GRANT Statement

david2tdw commented 3 years ago

MySQL8出现1251错误: 1.直接修改密码加密方式

mysql> alter user 'root'@'localhost' password expire never; #设置密码不过期
mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'newpassword';  #设置新密码
mysql> flush privileges;    # 刷新权限

2.卸载重装 安装时选择 Authentication Method -> Use Legacy Authentication method.

MySQL 使用Navicat连接MySQL8出现1251错误