Centos7.x搭建MySQL 5.7及错误处理

大家好,我是Mr数据杨,今天我将向大家介绍环境配置,MySQL远程访问以及常见错误及解决方法。看似繁琐的操作,实则内含奥秘,就像三国演义中的英雄人物一样,有时候面对复杂的局面,需要的不仅是武力,更需要策略。

“环境配置”,这就好比是为战役做准备。诸葛亮出征中原前,需要严格配置粮草,部署人手,环境配置也是如此。需要在计算机中安装MySQL服务,安装完成后,进行必要的设置,以使其能正常运行。

“MySQL远程访问”,这就如同战场上的通讯,是决定胜负的关键。假设诸葛亮在蜀地,需要及时掌握战场情况,那么迅速、准确的通讯就至关重要。而在数据库操作中,远程访问则允许Mr数据杨在任何地方,任何时间,都能操作MySQL,实时处理数据问题。

当然少不了“常见错误及解决方法”。战争中,不可能事事顺利。假设曹操挖地道偷袭赤壁,但却被周瑜提前识破,周瑜则需对此错误及时修正,寻求解决之道,这就是遇到错误时,也要能找出原因并解决问题的道理。

环境配置

在开始学习Django之前需要先进行环境配置。首先需要搭建MySQL数据库,并正确配置它。

使用命令cd /usr/local/src,进入本机源文件目录。

cd /usr/local/src

使用wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm命令下载MySQL的yum源的rpm包。

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

使用命令rpm -ivh mysql57-community-release-el7-11.noarch.rpm安装rpm包。

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

使用yum install -y mysql-server命令安装mysql-server

yum install -y mysql-server

使用命令systemctl start mysqld启动mysqld

systemctl start mysqld

使用命令ps aux|grep mysqld查看mysqld是否已启动:

ps aux|grep mysqld

使用命令systemctl enable mysqld设置开机自动启动:

systemctl enable mysqld

使用初始密码登陆,由于MySQL从5.7开始不允许首次安装后,使用空密码进行登录,系统会随机生成一个密码以供管理员首次登录使用,这个密码记录在/var/log/mysqld.log文件中。

使用cat /var/log/mysqld.log|grep 'A temporary password'命令可以查看此密码,最后一行冒号后面的部分就是初始密码。

cat /var/log/mysqld.log|grep 'A temporary password'

使用刚刚查看的密码登陆MySQL。

mysql -u root -p

进行密码修改。

  • use mysql;:这行代码的作用是选择数据库。在这个例子中,我们正在选择名为 “mysql” 的数据库。
  • alter user 'root'@'localhost' identified by 'your_password';:这行代码的目的是更改用户的密码。在这里,我们正在将 ‘localhost’ 上的 ‘root’ 用户的密码更改为 ‘your_password’。
use mysql;
alter user 'root'@'localhost' identified by 'your_password';

完成以上步骤后,MySQL数据库的配置就完成了。

MySQL远程访问

在进行Django开发时通常会在生产环境中使用MySQL数据库,并且允许远程访问。以下是配置MySQL远程访问的步骤:

host设置为%,表示允许任何IP都能连接MySQL:

mysql -u root -h localhost -p
use mysql;
update user set host='%' where user='root' and host='localhost';

如果需要指定某个IP进行连接,可以执行以下语句,设置了仅root用户且IP地址为106.39.178.131和本机才可以访问。

update user set host='106.39.178.131' where user='root' and host='localhost';

执行完以上语句后,刷新权限表,使配置生效:

flush privileges;

最后开放云服务器3306端口,就可以实现MySQL远程访问了。

在这里插入图片描述

常见错误及解决方法

在配置和使用Django时,可能会遇到一些常见的错误。下面是一些常见错误及其解决方法:

错误1:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing

解决方法:

  • ALTER USER 'root'@'localhost' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER; 是修改本地的root用户的密码,并设置该密码永不过期。
  • flush privileges; 是刷新MySQL的系统权限相关表,使得前面对用户权限的修改立即生效。
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER;
flush privileges;

错误2:ERROR 1130: host ‘localhost’ not allowed to connect to this MySQL server

解决方法:

这段代码是在MySQL数据库管理系统中执行的。下面是每行代码的解释:

  • use mysql;:这条命令的作用是切换到"mysql"数据库,"mysql"数据库是MySQL系统的内置数据库,其中包含了一些系统级别的信息,例如用户的信息。
  • select host,user,password from user;:这条命令从"user"表中选取了"host"、"user"和"password"这三个字段。"user"表中储存了MySQL的用户信息。
  • update user set host = '%' where user ='root';:这条命令的作用是更新"user"表中,“user"字段值为"root"的记录,将这些记录的"host"字段的值都改为”%“。”%"在这里代表任意主机,也就是说,这条命令的执行意味着"root"用户可以从任意主机进行登录。
  • flush privileges;:这条命令的作用是刷新系统的权限相关的信息。当"user"表的内容发生变化后,必须要执行这个命令,才能使得变更生效。
mysql>use mysql; # 查询出数据库的用户名
mysql>select host,user,password from user; # 把用户表里面的host项改为“%”
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;    #刷新用户权限表
# 重启mysql即可

错误3:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

解决方法:

  • set global validate_password_policy=0;:此命令改变全局的密码验证策略。数字0表示将策略设置为低级别,这将减少对密码复杂性的要求。
  • set global validate_password_length=1;:此命令改变全局的密码最小长度要求。数字1表示只要密码长度大于或等于1个字符就可以,这也降低了对密码强度的要求。
  • alter user 'root'@'localhost' identified by '你的新密码';:此命令用于修改指定用户(这里是位于localhost的root用户)的密码。'你的新密码’需要替换为你希望设定的新密码。
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

alter user 'root'@'localhost' identified by '你的新密码';
Query OK, 0 rows affected (0.01 sec)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr数据杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值