安装MySQL
到MySQL官网下载yum资源包,下载链接如下
https://dev.mysql.com/downloads/repo/yum/
选择合适的版本下载,并通过WinSCP或xftp放到linux服务器上。我下载的版本是mysql80-community-release-el7-3.noarch.rpm
。
安装命令:
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
yum install mysql-server
安装过程中会提示你添加依赖,输入y
即可。
初始化MySQL:
mysqld --initialize
验证MySQL安装:
mysqladmin --version
若输出以下信息则表示安装成功
[root@localhost downloads]# mysqladmin --version
mysqladmin Ver 8.0.17 for Linux on x86_64 (Source distribution)
启动MySQL:
service mysqld start
查看MySQL运行状态:
service mysqld status
如果MySQL的状态为,则表示MySQL安装成功。
问题解决
安装过程中可能出现如下错误
1、MySQL启动失败。
使用service mysqld start
命令启动时,产生以下错误。
Redirecting to /bin/systemctl start mysqld.service
Job for mysqld.service failed because the control process exited with error code.
See "systemctl status mysqld.service" and "journalctl -xe" for details.
这是因为目录权限不足造成的,通过查看mysql目录发现该目录下有的文件归属还是root,改成mysql。
[root@localhost downloads]# ll /var/lib/mysql |grep mysql
[root@localhost downloads]# chown -R mysql:mysql /var/lib/mysql
重新启动服务即可。
[root@localhost downloads]# service mysqld stop
[root@localhost downloads]# service mysqld start
2、登录时出现错误
[root@localhost downloads]# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
停止mysql服务:
[root@localhost downloads]# service mysqld stop
修改配置文件无密码登录:
vi /etc/my.cnf
在其后面添加如下内容
[mysqld]
skip-grant-tables
保存并启动MySQL
[root@localhost downloads]# service mysqld start
重新登录,这此没有密码便可直接进入。
mysql -u root
使用mysql数据库,更新密码为空,退出:
mysql> use mysql;
mysql> update user set authentication_string='' where user='root';
mysql> exit
删除(或注释掉)之前添加到skip-grant-tables
,并重启MySQL。
[root@localhost downloads]# service mysqld restart
修改root用户的密码(这里我将密码设置成123456
):
mysql> ALTER user 'root'@'localhost' IDENTIFIED BY '123456';
退出MySQL,再用新的密码重新登录即可。
3、外网访问MySQL
1、改变MySQL的连接权限
由于MySQL的默认的root的连接权限只是本机的,因此,我们需要开启外网访问的权限。
mysql> use mysql;
//查看mysql的user表
mysql> select host, user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+------------------+
mysql> update user set host = '%' where user = 'root';
mysql> select host, user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| % | root |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+------------------+
这样就可以使得账号root能够被其他IP连接入数据库了。
2、配置防火墙
// 开通3306端口
[root@localhost downloads]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
// 重新启动防火墙
[root@localhost downloads]# systemctl restart firewalld
// 查看系统所有开放的端口
[root@localhost downloads]# firewall-cmd --zone=public --list-ports
6379/tcp 3306/tcp
这样我们就可以从外网访问数据库了。
网友评论