MySQL 5.7.25 的安装包,存放在 /opt/software 目录下
详细步骤
一、离线安装 MySQL 数据库系统
1. 解压安装包
cd /opt/software
tar -xvf /opt/software/mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar
2. 安装 MySQL 组件
使用 rpm 命令依次安装
- mysql-community-common (服务器和客户端库的公共文件)
- mysql-community-libs(MySQL 数据库客户端应用程序的共享库)
- mysql-community-libs-compat(MySQL 之前版本的共享兼容库)
- mysql-community-client(MySQL 客户端应用程序和工具)
- mysql-community-server(数据库服务器和相关工具)
# 服务器和客户端库的公共文件
rpm -hiv mysql-community-common-5.7.25-1.el7.x86_64.rpm
# MySQL 数据库客户端应用程序的共享库
rpm -hvi mysql-community-libs-5.7.25-1.el7.x86_64.rpm
# MySQL 之前版本的共享兼容库
rpm -hvi mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
# MySQL 客户端应用程序和工具
rpm -hvi mysql-community-client-5.7.25-1.el7.x86_64.rpm
# 数据库服务器和相关工具
rpm -hvi mysql-community-server-5.7.25-1.el7.x86_64.rpm
3. 登录 MySQL
(1)初始化 MySQL 的数据库
安装好 MySQL 后,我们需要初始化数据库,初始化和启动数据库时最好不要使用 root 用户,而是使用 mysql 用户启动。因为 MySQL 出于安全考虑,默认拒绝用 root 账号启动 MySQL 服务。命令如下:
/usr/sbin/mysqld --initialize-insecure --user=mysql
(2)启动 MySQL 服务
使用如下命令开启 MySQL 服务,让其在后台运行:
/usr/sbin/mysqld --user=mysql &
说明:一定要加“&”,脚本才能放到后台运行。
(3)登录 MySQL
使用 root 用户无密码登录 MySQL
mysql -u root
(4)重置 MySQL 密码
mysql> alter user 'root'@'localhost' identified by '123456';
修改完成,使用 exit 或者 quit 命令退出 MySQL,重新登录验证密码是否修改成功。具体命令如下所示:
mysql> exit
mysql -uroot -p123456
二、实现远程连接
当我们的帐号不允许从远程登录,只能在 localhost 连接时,这个时候只要在 MySQL 服务器上,更改 mysql 数据库里的 user 表里的 host 项,从 localhost 改成 % 即可实现用户远程登录。
1. 查看 user 表信息
使用如下命令查看 mysql 数据库下的 user 表信息:
# 切换成 mysql 数据库
mysql> use mysql
# 查询用户信息
mysql> select user,host from user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
可以看到在 user 表中已创建的 root 用户。host 字段表示登录的主机,其值可以用 IP 地址,也可用主机名。
2. 实现远程连接(授权法)
将 host 字段的值改为 % 就表示在任何客户端机器上能以 root 用户登录到 MySQL 服务器,建议在开发时设为 %。命令如下:
# 设置远程登录权限
mysql> update user set host='%' where host='localhost';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
# 刷新配置信息
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
# 重查验证
mysql> select user,host from user;
+---------------+------+
| user | host |
+---------------+------+
| mysql.session | % |
| mysql.sys | % |
| root | % |
+---------------+------+
3 rows in set (0.00 sec)