centos下配置mysql 5.7 和 8

在这里插入代码片
第一步卸载mariadb
 
yum list installed | grep mariadb
 
yum -y remove mariadb*
 
第二步下载mysql5.7    !!!!一定是5.7,不是8.0
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
如果是安装mysql8.0    !!!!用下面这句
wget http://dev.mysql.com/get/Downloads/mysql80-community-release-el7-3.noarch.rpm

 
第三步检查并安装wget工具
yum -y install wget
 
第四步安装rpm包,并且检查mysql的yum源是否安装成功
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
 
yum repolist enabled | grep "mysql.*-community.*"
 
出现三行红色的文字,则成功。
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
 
第五步开始安装
yum install mysql-server
 
出现下面内容,则安装完成。
Installed:
  mysql-community-server.x86_64 0:5.7.33-1.el7                                                                                                                       
 
Dependency Installed:
  mysql-community-client.x86_64 0:5.7.33-1.el7          
  mysql-community-common.x86_64 0:5.7.33-1.el7           
  mysql-community-libs.x86_64 0:5.7.33-1.el7  
 
 
记几条命令,后面会用到。
    重启mysql        systemctl restart mysqld.service \ service remysqld start
    启动mysql        systemctl start mysqld.service \ service mysqld start
    停止mysql        systemctl stop mysqld.service \ service mysqld stop
 
第六步,启动mysql,并查看状态
出现下面内容,则启动完成。此时就可以使用密码登录了。
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-04-14 18:32:47 CST; 2min 13s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 7630 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 7602 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 7633 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─7633 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
 
 
第七步 修改mysql密码,mysql安装完成会自动生成一个默认密码,在/var/log/mysqld.log 文件中,
使用cat /var/log/mysqld.log 或者 grep 'temporary password' /var/log/mysqld.log查看。
    然后使用mysql -uroot -p密码登录。
 
使用下面命令修改密码
set password=password("123456");
报错:提示密码不符合mysql的安全策略。
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
 
使用下面命令查看mysql密码策略
SHOW VARIABLES LIKE 'validate_password%';
报错:提示必须先用alter指令修改密码,才能看密码策略,简直鸡生蛋,蛋生鸡,死循环。
修改密码可以使用alter user指令,也可以使用set password指令。mysql5.7和8.0有些不同。
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
 
密码策略里面比较重要的是validate_password_policy和validate_password_length,8.0之后改为validate_password.policy和validate_password.length,validate_password_policy是密码等级,默认是1(MEDIUM),要求英文大小写字母、特殊字符、数字,validate_password_length是密码长度,默认是8。如果不修改这两项是很难一次设置密码成功的。况且自己使用mysql,也不需要那么复杂的密码。
 
密码策略降为0(LOW)
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
 
密码长度默认修改为1
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
 
修改密码成功
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
 
刷新权限
flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
退出mysql
exit
 
设置开机自动启动
systemctl enable mysqld
重载所有修改过的配置文件
systemctl daemon-reload
 
第八步 重启mysql,查看mysql状态
systemctl restart mysqld.service
systemctl status mysqld.service
 
第九步 查看mysql版本
mysql -V
mysql  Ver 14.14 Distrib 5.7.33, for Linux (x86_64) using  EditLine wrapper
 
 
第十步 授权远程连接,如果你的mysql安装在阿里云或者腾讯云,你想在本地远程连接就必须授权远程连接。
可以添加一个允许远程连接的账号,授予他所有权限。
GRANT ALL PRIVILEGES ON *.* TO 'zhangsan'@'%' IDENTIFIED BY 'Zhangsan2018!' WITH GRANT OPTION;
 
没看懂,所以我给root开远程连接的权限。
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
mysql> UPDATE user SET Host='%' WHERE User='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
授权之后记得刷新权限和重启mysql
systemctl restart mysqld.service
这样就可以远程连接mysql了。
 
 
 
mysql 忘记密码时,设置跳过密码,先登录,再改密码。
nano /etc/my.cnf
在[mysqld]的段中加一句话:skip-grant-tables 保存(crt + O) Enter 退出(crt + X)
 
登录mysql 修改密码策略,降低密码等级。
 
密码策略降为0(LOW)
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
 
密码长度默认修改为1
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
 
修改密码成功 注意,mysql5.7的修改密码命令和其它版本的有些不同。
舍弃了update user set password=password(“新密码”) where user=”用户名”;
 
mysql> UPDATE user SET Password = password ( '123456' ) WHERE User = 'root';
ERROR 1054 (42S22): Unknown column 'Password' in 'field list'
 
mysql> update mysql.user set authentication_string=password('123456') where user='root';
Query OK, 0 rows affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 1
 
刷新权限
flush privileges;
Query OK, 0 rows affected (0.00 sec)
授权之后记得刷新权限和重启mysql
systemctl restart mysqld.service
这样就可以在忘记密码的情况下更新密码了。
 
在忘记密码的情况下不能用alter user命令
mysql> alter user 'root'@'localhost' identified by '123456';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
 
alter user 只能在初次通过密码登录后,用于修改密码。以后只能使用update set 语句修改密码。
 
注意:mysql 5.7 默认安装了密码安全检查插件(validate_password),
默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。
否则会提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 错误。
 
首次登录,修改密码:
 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; 或者
 set password for 'root'@'localhost'=password('123456'); 
 
以后通过update set 语言修改密码
update user set password=PASSWORD('123456') where user='root';或者
update mysql.user set authentication_string=password('123456') where user='root';
 
让mysql开机自启动
systemctl enable mysql
 
set password=password("youpassword");
 
firewall-cmd --zone=public --add-port=80/tcp --permanent   (--permanent永久生效,没有此参数重启后失效)
 
远程连接mysql报错10060,有两种原因,一是mysql没有授权远程连接,那么use mysql,授权就行;另一种是防火墙拦截了3306端口。
 
查看防火墙允许开放的端口,firewall-cmd --zone=public --list-ports
 
给防火墙添加允许通过的端口,firewall-cmd --zone=public --add-port=3306/tcp --permanent
 
重载防火墙以生效,firewall-cmd --reload
 
 
windows下安装mysql8,root ,root
其它虚拟机下,免密登录或者root,123456
 
 
2003 - Cant't connect to MySQL server on 'ip'(10060 "Unknown error")
问题描述
今天在搭建服务器之后,安装好MySQL,启动成功,并且创建远程连接用户,用户名和密码都正确,使用Navicat远程连接抛出如下错误:
2003 - Cant’t connect to MySQL server on ‘192.168.137.137’(10060 “Unknown error”)
原因
经过一番查找发现问题所在:
因为Mysql默认不允许远程登录,所以需要设置防火墙开放3306端口
解决办法
开放3306 端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#命令含义
--zone #作用域 
--add-port=3306/tcp #添加端口,格式为:端口/通讯协议 
--permanent #永久生效
重启防火墙
systemctl restart firewalld




如果是安装mysql8.0,在上面的基础上修改
第一步卸载mariadb
 
yum list installed | grep mariadb
 
yum -y remove mariadb*
 
第二步下载mysql5.7    !!!!一定是5.7,不是8.0
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
如果是安装mysql8.0    !!!!用下面这句
wget http://dev.mysql.com/get/Downloads/mysql80-community-release-el7-3.noarch.rpm

 
第三步检查并安装wget工具
yum -y install wget
 
第四步安装rpm包,并且检查mysql的yum源是否安装成功
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
 
yum repolist enabled | grep "mysql.*-community.*"
 
出现三行红色的文字,则成功。
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
 
第五步开始安装
yum install mysql-server
 
出现下面内容,则安装完成。
Installed:
  mysql-community-server.x86_64 0:5.7.33-1.el7                                                                                                                       
 
Dependency Installed:
  mysql-community-client.x86_64 0:5.7.33-1.el7          
  mysql-community-common.x86_64 0:5.7.33-1.el7           
  mysql-community-libs.x86_64 0:5.7.33-1.el7  

第七步 修改mysql密码,mysql安装完成会自动生成一个默认密码,在/var/log/mysqld.log 文件中,
使用cat /var/log/mysqld.log 或者 grep 'temporary password' /var/log/mysqld.log查看。
    然后使用mysql -uroot -p密码登录。

alter user 'root'@'localhost' identified by '123456xfXF!';
#这里是折中一下
密码策略降为0(LOW)
mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)
 
密码长度默认修改为1
mysql> set global validate_password.length=1;
Query OK, 0 rows affected (0.00 sec)
#再改回来
alter user 'root'@'localhost' identified by '123456';


Navicat连接MySQL远程连接1130错误的解决方法
今天在用远程连接Mysql服务器的数据库,不管怎么弄都是连接不到。
错误代码是1130,ERROR 1130: Host X.X.X.X is not allowed to connect to this MySQL server
猜想是无法给远程连接的用户权限问题。结果这样子操作mysql库,即可解决。
在服务器登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称’%’。

下面是用SQL语句解决问题:
mysql -u root -p
mysql> use mysql;
mysql> select 'host' from user where user='root';
mysql> update user set host = '%' where user = 'root';
mysql> flush privileges;
mysql> select 'host' from user where user='root';

第一句是以权限用户root登录
第二句:选择mysql库
第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
第五句:刷新MySQL的系统权限相关表
第六句:再重新查看user表时,有修改。。
重起mysql服务即可完成。

猜你喜欢

转载自blog.csdn.net/weixin_44716147/article/details/117884430
今日推荐