centos 7 mysql 离线安装教程
1. 解压下载的zip包,会发现有以下几个rpm包:
MySQL-client-advanced-5.6.22-1.el7.x86_64.rpm
MySQL-devel-advanced-5.6.22-1.el7.x86_64.rpm
MySQL-embedded-advanced-5.6.22-1.el7.x86_64.rpm
MySQL-server-advanced-5.6.22-1.el7.x86_64.rpm
MySQL-shared-advanced-5.6.22-1.el7.x86_64.rpm
MySQL-shared-compat-advanced-5.6.22-1.el7.x86_64.rpm
MySQL-test-advanced-5.6.22-1.el7.x86_64.rpm
2. 卸载MariaDB
如果直接点击rpm包安装会得到错误提示。因为CentOS的默认数据库已经不再是MySQL了,而是MariaDB,为什么呢?
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
查看当前安装的mariadb包:
[root@bogon 桌面]# rpm -qa | grep mariadb
将它们统统强制性卸载掉:
[root@bogon 桌面]# rpm -e --nodeps mariadb-libs-5.5.35-3.el7.x86_64
[root@bogon 桌面]# rpm -e --nodeps mariadb-5.5.35-3.el7.x86_64
[root@bogon 桌面]# rpm -e --nodeps mariadb-server-5.5.35-3.el7.x86_64
3. 安装MYSQL
双击下面三个包进行自动安装:
MySQL-client-advanced-5.6.22-1.el7.x86_64.rpm
MySQL-devel-advanced-5.6.22-1.el7.x86_64.rpm
MySQL-server-advanced-5.6.22-1.el7.x86_64.rpm
提示:其实第二个包devel我也不知道是干什么的,也不知道是不是必须的(上网搜了一下应该不是必须的),没有测试是否必须就已经点来装上了,也不想花时间去测试是否必须了,有测试过的朋友麻烦留言告知。
4. 启动MYSQL
[root@bogon 桌面]#service mysql start
得到错误:ERROR!The server quit without updating PID file
我们这里主要是因为:selinux惹的祸,如果是centos系统,默认会开启selinux。解决方法是关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器。
然后再启动mysql就没问题了:
[root@bogon 桌面]#service mysql start
查看MySQL运行状态:
[root@bogon 桌面]# service mysql status
SUCCESS! MySQL running (2377)
5. 默认root用户登录MYSQL
[root@bogon 桌面]# mysql -u root -p
Enter password:
ERROR 1045 (28000):Access denied for user 'root'@'localhost' (using password: YES)
发现有有错误,然后在网上查了一下说使用下面命令修改root初始化密码:
[root@bogon 桌面]# /usr/bin/mysqladmin -u root password 'passok'
/usr/bin/mysqladmin: connect to server at'localhost' failed
error: 'Accessdenied for user 'root'@'localhost' (using password: NO)'
发现MYSQL数据库默认的root用户还是没办法设置密码进行登录,需要做一下操作:
重置MySQL中root用户密码及验证
还是不行,然后在网上又找到一个重置MySQL中root用户密码及验证的方法:
(1) 停止MySQL服务
[root@bogon 桌面]# service mysql stop
Shutting down MySQL.. SUCCESS!
(2) 输入绕过密码认证命令
killall -TERM mysqld
mysqld_safe --skip-grant-tables &
输入mysql直接连接
mysql> UPDATE user SET Password=PASSWORD('123qwe') where USER='root';
Query OK, 4 rows affected (0.04 sec)
Rows matched: 4 Changed: 4 Warnings: 0
ALTER USER USER() IDENTIFIED BY '123qwe';
(5) 输入数据刷新命令
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
(6) 退出
mysql> quit
Bye
(7) 启动MYSQL
[root@bogon 桌面]# service mysql start
Starting MySQL SUCCESS!
登录mysql,查看所有数据库:
[root@bogon 桌面]# mysql -u root -p
mysql> show databases;
ERROR 1820 (HY000):You must SET PASSWORD before executing this statement
还是有错误啊,提示要再设置一下密码:
mysql> SET PASSWORD = PASSWORD('123qwe');
Query OK, 0 rows affected (0.00 sec)
show databases;
use mysql;
select host,user from mysql.user;
create user 'usrabc'@'%' identified by 'usrabc';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY '12345678' WITH GRANT OPTION;
mysql>update user set host = '%' where user = 'root';
flush privileges;
systemctl stop firewalld.service