服务器安装mysql
安装mysql那不是手到擒来,可是我发现我错了
之前宝塔安装过mysql5.7.38
直接启动mysql
systemctl start mysql
这怎么办呢
要不把宝塔的mysql卸载了,自己安装一个
yum install mysql
yum install mysql-server
yum install mysql-devel
安装mysql和mysql-devel成功,安装mysql-server失败
为什么呢?
CentOs 7版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了
解决方法
- 安装mariadb
- 官网下载安装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
报错了
确认端口是否打开
忘记开3306端口了,宝塔和服务器都要开
然后重启服务
systemctl restart mysqld
继续输入mysql -u root进入成功
设置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;
登录之前创建的用户,报错了
用root用户登录进去,查看用户表
我创建的用户,当我输入mysql -uucenter -p
的时候,系统会去匹配字段,host是’%'意味着匹配所有字符,接着看user,可能会匹配到第四个或第六个user为空的匿名用户,密码验证错误,登录失败。
create user 'ucenter'@'%' identified by 'xxxx';
解决方法就是把匿名用户删除,匿名用户是系统自行给予的,而且本身没有设置密码,可以随便登录;从安全方面看,删除匿名用户也可提高数据库的安全性。
delete from user where user="";
刷新下权限
flush privileges;
登录成功
为了安全改下端口,服务器和宝塔的端口也要开放
vim /etc/my.cnf
重启mysql服务
systemctl restart mysqld
登进mysql输入下面语句查看端口
show global variables like 'port';
端口已修改
把3306端口关闭
大功告成
用idea远程连一下试试
服务器的mysql也能查到,完美

Q.E.D.