CentOS7环境安装MySQL8.0
在CentOS7上启动启动MySQL8.0出错,原来是因为MySQL现在使用成MariaDB代替
[root@localhost ~]# service mysqld start
Redirecting to /bin/systemctl start mysqld.service
Failed to start mysqld.service: Unit not found
解决方法:
# 安装
yum install -y mariadb-server
# mariadb数据库的相关命令是:
systemctl start mariadb # 启动MariaDB
systemctl stop mariadb # 停止MariaDB
systemctl restart mariadb # 重启MariaDB
systemctl enable mariadb # 设置开机启动
MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。开发这个分支的原因之一是:甲骨文公司收购了 MySQL 后,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
安装完成后:
# 初始密码查看方法
grep "password" /var/log/mysqld.log
# 启动musql服务
service mysqld start
# 登录mysql修改初始密码
# MySQL 8.0 调整密码验证规则
mysql> set global validate_password.policy=0;
mysql> set global validate_password.length=1;
ALTER USER USER() IDENTIFIED BY '设置密码';
常用关键指令
# mysql开启服务命令:
systemctl status mysqld.service
#重启服务
systemctl restatus mysqld.service
# mysql停止服务命令:
systemctl stop mysqld.service
# 查看配置文件所在路径:
mysql>show variables like *'%dir%'*;
mysql8.0开启远程连接权限
1、配置授权用户远程登录;
方式一:授权root用户
# 登录mysql命令行
mysql> use mysql;
mysql> select host,user from user;
mysql> update user set host = '%' where user = 'root';
flush privileges;
方式二:授权其他用户
# 1、修改密码
alter user '用户名称'@'%' IDENTIFIED BY '新密码';
# 2、创建用户及修改权限create user '用户名称'@'%' identified by '密码';
如果你允许myql被远程连接,这里%表示ip地址
mysql>grant all privileges on 数据库名称.\* to '用户名称'@'%';
mysql>flush privileges;
2、允许远程连接配置
# 开启端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 查询端口号3306是否开启
firewall-cmd --query-port=端口/tcp
# 重启防火墙
firewall-cmd --reload
# 查看已打开的端口
firewall-cmd --list-ports
# 查看firewall防火墙状态
firewall-cmd --state
# 关闭端口
firewall-cmd --permanent --zone=public --remove-port=端口/tcp --permanent
命令含义:
--zone #作用域
--add-port=3306/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
systemctl enable firewalld.service
可能出现的问题
# 刷新权限
flush privileges;