服务器安装mysql

安装mysql那不是手到擒来,可是我发现我错了

之前宝塔安装过mysql5.7.38

image-20220730155855131

直接启动mysql

systemctl start mysql

image-20220730175036930

这怎么办呢

要不把宝塔的mysql卸载了,自己安装一个

yum install mysql
yum install mysql-server
yum install mysql-devel

安装mysql和mysql-devel成功,安装mysql-server失败

image-20220730185312478

为什么呢?

CentOs 7版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了

解决方法

  1. 安装mariadb
  2. 官网下载安装mysql-server

安装mariadb

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
yum install mariadb-server mariadb

相关命令

systemctl start mariadb 启动
systemctl stop mariadb 停止
systemctl restart mariadb 重启
systemctl enable mariadb 开机启动

官网下载安装mysql-server

wget https://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server

启动mysql服务

systemctl start mysqld

设置mysql服务自启动

systemctl enable mysqld

相关命令

systemctl disable mysqld 停止mysql服务开机自启动
systemctl status mysqld 查看mysql服务当前状态
systemctl restart mysqld 重启mysql服务
systemctl stop mysqld 停止mysql服务

进入mysql,root账户没用密码

mysql -u root 

报错了

image-20220730202115441

确认端口是否打开

image-20220730202210706

忘记开3306端口了,宝塔和服务器都要开

然后重启服务

systemctl restart mysqld 

继续输入mysql -u root进入成功

image-20220730202440237

设置root用户密码

set password for 'root'@'localhost' = password('密码');

新建一个用户并授权

create user 'ucenter'@'%' identified by 'a05vvvKAvBn4DKrD54';
grant all privileges on *.* to 'ucenter'@'%' with grant option;
把所有权限赋值给位于所有IP地址usercenter用户:

刷新权限

flush privileges;

上面在服务器和宝塔面板开过端口,这里就不必再开了,但是保险起见也可以执行一遍命令

防火墙开放端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

重新加载配置

firewall-cmd --reload

查看开放的端口

firewall-cmd --list--ports

修改配置文件

vim /etc/my.cnf

添加如下内容

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

重启mysql

systemctl restart mysqld;

登录之前创建的用户,报错了

image-20220730234118085

用root用户登录进去,查看用户表

image-20220730234154348

我创建的用户,当我输入mysql -uucenter -p的时候,系统会去匹配字段,host是’%'意味着匹配所有字符,接着看user,可能会匹配到第四个或第六个user为空的匿名用户,密码验证错误,登录失败。

create user 'ucenter'@'%' identified by 'xxxx';

解决方法就是把匿名用户删除,匿名用户是系统自行给予的,而且本身没有设置密码,可以随便登录;从安全方面看,删除匿名用户也可提高数据库的安全性。

delete from user where user="";

image-20220730234759115

刷新下权限

flush privileges;

登录成功

image-20220730235248209

为了安全改下端口,服务器和宝塔的端口也要开放

vim /etc/my.cnf

image-20220731103424679

重启mysql服务

systemctl restart mysqld 

登进mysql输入下面语句查看端口

show global variables like 'port';

image-20220731103623357

端口已修改

把3306端口关闭

大功告成

用idea远程连一下试试

image-20220731105845283

服务器的mysql也能查到,完美

image-20220731105951028

1

Q.E.D.


春风亦有春风愁,不劳春风为我忧