阿里云Centos安装mysql教程


mysql

一、基本安装过程

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

# rpm -qa|grep -i mysql

2.将已经安装过的软件卸载掉。

注意:这样的卸载是不彻底的。

# yum remove ‘软件名’

3.下载安装mysql的repo源

CentOS 7的yum源中默认是没有mysql的。所以,为了解决这个问题我们首先下载安装mysql的repo源。

# 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.按照以下顺序开始安装

# yum install mysql-server #或 sudo yum install mysql-server –nogpgcheck

# yum install mysql-devel #或 sudo yum install mysql-devel –nogpgcheck

# yum install mysql

# rpm -qa | grep -i mysql

6.服务开关操作

#执行其中之一就可以

# 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

二、安装完成后无法登录的问题

安装完成后用命令mysql -u root -p 然后Enter Password,但是无法登录。解决办法如下:

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

2.然后直接输入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;

# 逗号不能少

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

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

三、登录错误

下面顺便讲解一下这个问题:安装完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 需要修改成新密码外,其他原样输入即可。

四、远程客户端无法连接MySQL数据库

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 #关闭防火墙

2.更改“host” 项

在本机登入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表时,有修改

3.重启mysql服务即可完成

service mysqld restart

4.使用mysql -uroot -p报错

使用mysql -uroot -p,然后输入密码登录mysql时,出现了如下错误:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

一般这个错误是由密码错误引起,解决的办法自然就是重置密码

解决方案如下:

1. 停止mysql数据库:
systemctl stop mysqld

2. 用以下命令启动MySQL,以不检查权限的方式启动:
mysqld --skip-grant-tables &

此时又报了一个错误:
2018-02-01T02:52:55.093724Z 0 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!

执行命令:
mysqld --user=root --skip-grant-tables &

3. 登录mysql:
mysql -uroot或mysql

4. 更新root密码

mysql5.7以下版本:
UPDATE mysql.user SET Password=PASSWORD('123456') where USER='root';

mysql5.7版本:
UPDATE mysql.user SET authentication_string=PASSWORD('123456') where USER='root';

5. 刷新权限:flush privileges;

6. 退出mysql:exit``quit

7. 使用root用户重新登录mysql
mysql -uroot -p

Enter password:<输入新设的密码123456>

5.关于 CentOS8出现“Error: Failed to download metadata for repo ‘AppStream‘: xxxx” 的原因

因为centOS8于2021年12月31日停止了源的服务,所以之前的方法都不行的原因所在(本质是源的问题)

6.报错 No match for argument: mysql-server

Centos 安装mysql57 运行 yum install mysql-community-server 出现以下错误:

1.No match for argument: mysql-community-server

2.Error: Unable to find a match: mysql-community-server

请尝试运行 yum module disable mysql

然后在尝试 yum install mysql-community-server 命令即可

五、卸载MySQL命令

//rpm包安装方式卸载
查包名:rpm -qa|grep -i mysql
删除命令:rpm -e –nodeps 包名

//yum安装方式下载
1.查看已安装的mysql
命令:rpm -qa | grep -i mysql
2.卸载mysql
命令:yum remove mysql-community-server-5.6.36-2.el7.x86_64
查看mysql的其它依赖:rpm -qa | grep -i mysql

//卸载依赖
yum remove mysql-libs
yum remove mysql-server
yum remove perl-DBD-MySQL
yum remove mysql

文章作者: 弈心
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 弈心 !
评论
  目录