linux服务器上安装mysql并实现本地连接
本博客中所有命令均基于centos,其他版本linux请类推。
检查是否安装
检查是否安装了mysql和mariadb,检查命令如下:
1 | rpm -qa | grep mysql |
如果发现有安装上面的内容,需要先进行删除操作,命令如下
1 | rpm -e mysql |
下载并安装MySQL包
进入mysql官网,根据自己的Linux操作系统类型以及版本选择需要下载的MySQL包,这里因为我的系统是CentOS7,对应的RHEL(Red Hat Enterprise Linux)的版本是7,所以我选择的是MySQL Yum Repository下面的Red Hat Enterprice Linux 7
可以复制下载链接到服务器上下载,下载命令为:
1 | wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm |
下载后安装命令为:
1 | yum -y install mysql80-community-release-el7-7.noarch.rpm |
安装MySQL
安装命令为:
1 | yum install -y mysql-community-server |
安装完成后,启动mysql服务:
1 | systemctl start mysqld |
启动mysql服务之后,可以通过查看**/var/log/mysqld.log**文件查看mysql的初始密码,命令为:
1 | cat /var/log/mysqld.log |
下图即为mysql初始密码:
重置密码
首先使用上方提供的mysql初始密码登录mysql:
1 | mysql -uroot -p |
输入密码进入mysql之后通过下方命令重置mysql密码,如果不重置,你会发现你无法使用MySQL,MySQL会强制要求你修改密码:
1 | ALTER USER user() identified by 'Cw.123123'; |
输入的MySQL密码必须符合一定的复杂度,否则修改密码会失败,并报如下错误:
1 | ERROR 1819 (HY000): Your password does not satisfy the current policy requirements |
修改MySQL用户访问权限以及开放端口
如果需要实现服务器外部等服务器数据库的用户,我们还需要修改MySQL该用户的访问权限以及开放防火墙端口
修改MySQLroot用户访问权限
登录MySQL后,查看root用户访问权限,SQL语句为:
1 | select host from user where user = 'root'; |
结果如图,默认情况下,用户的访问权限都是localhost,我们把它改为**%**,这样就可以从服务器外部登录服务器MySQL的root用户:
1 | update user set host = '%' where user = 'root'; |
退出mysql后,重启mysql服务:
1 | systemctl restart mysqld |
开放防火墙端口
默认情况下MySQL的运行端口为3306,如果想要修改mysql的运行端口,可以编辑**/etc/my.cnf**配置文件:
1 | vim /etc/my.cnf |
在[mysqld]下方添加如下内容,即可修改mysql运行的端口:
1 | port=3306 |
首先查看自己的防火墙是否为运行状态:
1 | systemctl status firewalld |
如Active状态为active(running)则代表防火墙正常运行,若防火墙没有启动,请执行:
1 | systemctl start firewalld |
添加防火墙开放端口:
1 | firewall-cmd --add-port=3306/tcp --permanent |
重新加载防火墙配置:
1 | firewall-cmd --reload |