参考文档:
centos 7安装mysql5.5的方法_慕课手记 :https://www.imooc.com/article/47009
安装mysql数据库及问题解决方法_ITPUB博客 http://blog.itpub.net/31015730/viewspace-2152272/
Linux操作系统:centOS6_64位
mysql版本:mysql 5.7.24
mysql-5.7.24-1.el6.x86_64.rpm-bundle.tar 下载网址:
MySQL :: Begin Your Download
https://dev.mysql.com/downloads/file/?id=481078
点击No thanks, just start my download.进行下载。
(1)使用rpm -qa|grep -i mysql 命令查看系统自带的mysql组件
(2)使用rpm -ev mysql-XXX命令卸载组件
如果卸载时,提示有依赖,则使用“rpm -ev --nodeps mysql-XXX”强制卸载组件
#列出mariadb所有被安装的rpm package rpm -qa | grep mariadb #依次进行卸载 rpm -e mariadb-libs-5.5.37-1.el7_0.x86_64 错误:依赖检测失败: libmysqlclient.so.18()(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要 libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要 #使用 --nodep 进行强制卸载 rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64 |
将“mysql-5.7.24-1.el6.x86_64.rpm-bundle.tar”上传至服务器中,例如上传至“/home”目录。
解压:tar -xvf mysql-5.7.24-1.el6.x86_64.rpm-bundle.tar
rpm -ivh mysql-community-common-5.7.24-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.24-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.24-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.24-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.24-1.el6.x86_64.rpm
在执行rpm命令进行安装的过程中,可能会提示:
libaio.so.1()(64bit) is needed by MySQL-server 问题
可以直接实用yum包管理工具安装即可:yum install libaio。
也可以从网址
http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
中下载libaio的rpm安装包进行安装。
service mysqld restart
之前经常使用的mysql5.5重启mysql服务的命令是:service mysql restart,到了mysql5.7.24好像mysql不管用了,必须使用mysqld。这个问题之后再研究研究。
说明:mysql5.7.24版本和之前经常使用的mysql5.5版本不同。mysql5.5版本,在安装完成之后,可以直接使用使用“mysql -uroot”命令登录mysql,但是mysql5.7.24安装完成之后不能使用root用户免密登录,需要使用临时密码进行登录。
①mysql5.7.24 在安装之后,直接使用“mysql -uroot”无法登录,报错如下:
②使用临时密码进行登录,查询临时密码:grep “password” /var/log/mysqld.log
可以看到,我这里的临时密码是:x6i&t(+S>ngk
③使用临时密码登录:mysql -uroot -p
备注:不能使用“mysql -uroot -px6i&t(+S>ngk”的方式进行登录,会报错“-bash: syntax error near unexpected token `+S’”。
修改root用户密码,依次执行一下语句:
mysql> set global validate_password_policy=0;
mysql> set password for 'root'@'localhost' =password('beijing123');
mysql> flush privileges;
mysql> exit;
图片参考:
说明:
①set global validate_password_policy=0; —修改数据库密码有效性策略。
在执行“set password for ‘root’@‘localhost’ =password(‘password’);”对root用户进行密码修改时,报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements”。
上述报错的原因:其实与validate_password_policy的值有关。
validate_password_policy有以下取值:
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
解决方法:修改validate_password_policy参数的值
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> select @@validate_password_length;
+----------------------------+
| @@validate_password_length |
+----------------------------+
| 8 |
+----------------------------+
1 row in set (0.05 sec)
默认的密码长度是8,少于8位依旧会出现报错 。
②修改root用户密码
修改root用户密码的SQL语句有两种:
set password for ‘root’@‘localhost’ =password(‘beijing123’);
或者:
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘beijing123’;
登录mysql数据库:mysql -uroot -p
依次执行一下语句:
mysql> use mysql;
mysql> update user set host='%' where user='root';
mysql> flush privileges;
mysql> grant all privileges on *.* to root@'%';
mysql> flush privileges;
mysql> create database AUTH;
mysql> use AUTH;
mysql> alter database AUTH default character set utf8;
mysql> set names utf8;
mysql> exit;
后面几条SQL语句为创建AUTH数据库的语句,如果不需要则不执行。
执行过程截图:
如果连接不上,则使用命令telnet 192.168.0.196 3306判断是否成功,如果不成功则可能需要在服务端防火墙上开启3306端口;