阿里云Centos7中安装mysql教程


引言:

如何在Centos中成功安装配置MySql

1 基本安装过程

1.查看系统是否安装了mysql软件

# rpm -qa|grep -i mysql

2.将已经安装过的软件卸载掉。注意:这样的卸载是不彻底,不过这里够用了

# yum remove '软件名'

3.CentOS 7的yum源中默认是没有mysql的。所以,为了解决这个问题我们首先下载安装mysql的repo源。可以去该网站:http://repo.mysql.com/ 选择想要的版本。

# wget http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm

4.安装mysql的repo源

# rpm -ivh mysql57-community-release-el7-7.noarch.rpm

安装之后会获得/etc/yum.repos.d/mysql-community.repo和/etc/yum.repos.d/mysql-community-source.repo两个源,可以去相应的路径下查看一下。

5.开始正式安装MySql,运行以下命令

# yum install mysql-server
# yum install mysql-devel
# yum install mysql
# rpm -qa | grep -i mysql

6.MySql服务的相关操作

#执行其中之一就可以
# service mysqld status     查看mysql当前的状态
# systemctl status mysqld

# service mysqld stop       停止mysql
#systemctl stop mysqld

# service mysqld restart    重启mysql
#systemctl restart mysqld

# service mysqld start      启动mysql
# systemctl start mysqld

7.设置MySQL开机启动

systemctl enable mysqld

8.启动MySQL服务进程,执行其中之一就行

# systemctl start mysqld
# service mysqld start

2.安装完成后,不知道登录密码无法登录的问题

安装完成后用命令 mysql -u root -p 然后按回车键,弹出Enter password需要输入密码,由于不知道密码,无法登陆连接MySql。解决办法如下:

1.在/etc/my.cnf文件中最后添加一行 skip-grant-tables 作用就是跳过了mysql的用户验证,然后重启mysql:systemctl restart mysqld

然后直接输入mysql,不需要带任何登录参数直接回车就可以登陆上数据库;

进入数据库之后,依次执行下面的命令:

mysql> use mysql;
mysql> show tables;
select user,authentication_string from user;
update mysql.user set authentication_string=password('your password') where user='root';
flush privileges;
exit

2.恢复/etc/my.cnf文件,将skip-grant-tables删除或者注释掉,然后重启mysql:systemctl restart mysqld

到此为止我们就解决了mysql安装之后登录不知道密码的问题。

3.登录错误

下面顺便讲解一下这个问题:安装完mysql 之后登陆,不管运行任何命令,总是提示这个错误:

You must reset your password using ALTER USER statement before executing this statement

处理步骤为:依次执行下面三条代码。

SET PASSWORD = PASSWORD('your new password');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;

这里要注意的是your new password 必须包含数字,字母包含大小写,标点符号。不然好像是不能通过的。(还是有其他的解决方案,关注下一篇博文)

完成以上三步退出再登,使用新设置的密码就行了,以上除了 your new password 需要修改成新密码外,其他原样输入即可。

4.远程客户端无法连接MySQL数据库

4.1 创建新的安全组规则,对外开放3306端口访问授权(阿里云的服务器,默认只需要在管理后端开启3306就可以了,下面操作防火墙的步骤可以免掉)

firewall-cmd --permanent --zone=public --add-port=3306/tcp            #添加端口,加完要重启防火墙
firewall-cmd --permanent --zone=public --remove-port=3306/tcp        #删除端口,加完要重启防火墙

说明:

  • zone 作用域
  • add-port=3306/tcp #添加端口,格式为:端口/通讯协议
  • permanent 永久生效,没有此参数重启后失效

查看端口状态netstat -an | grep 3306
查看已开启的端口,重启防火墙后有效

firewall-cmd --list-ports
systemctl restart firewalld        #重启防火墙
systemctl status firewalld         #查看防火墙状态
systemctl stop firewalld           #关闭防火墙

4.2 在本机登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改成’%’。

mysql -u root -p
mysql>use mysql;
mysql>select host,user from user;
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select host,user from user;
  • 第一句是以权限用户root登录
  • 第二句:选择mysql库
  • 第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
  • 第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
  • 第五句:刷新MySQL的系统权限相关表
  • 第六句:再重新查看user表时,有修改

4.3 重起mysql服务即可完成,service mysqld restart


文章作者: YangChongZhi
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 YangChongZhi !
评论
 上一篇
Mysql8.0解决设置密码时Error Mysql8.0解决设置密码时Error
引言: 解决 mysql8.0 设置密码error:Your password does not satisfy the current policy requirements 本文转自博客https://blog.csdn.net/he
2020-05-30
下一篇 
华为2020软件精英挑战赛复赛赛后方案分享 华为2020软件精英挑战赛复赛赛后方案分享
引言: 我是来自成渝赛区UESTC的选手,成渝赛区初赛成绩为0.5646s,当时以为不能晋级复赛,就忘了组队。这里分享我复赛时的方案和代码,复赛练习时成绩为12.1534s,正式复赛时成渝赛区排名21,成功拿到手环(我已经很满足了)。本篇博
2020-05-17
  目录