centos下安装mysql5.7

第一步卸载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

第三步检查并安装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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值