1、添加包
CentOS 7
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
CentOS 8
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
rpm -ivh mysql80-community-release-el8-1.noarch.rpm
2、更新 yum 命令
yum clean all && yum makecache
3、安装
yum install -y mysql-community-server
4、配置文件
#修改配置文件
vim /etc/my.cnf
[mysqld]
port = 3306
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
# 表名不区分大小写(启动前配置)
lower_case_table_names=1
#设置日志时区和系统一致
log_timestamps=SYSTEM
[client]
default-character-set=utf8mb4
5、启动服务
#启动服务
systemctl start mysqld
#查看版本信息
mysql -V
#查看状态
systemctl status mysqld
##开机启动
systemctl enable mysqld
systemctl daemon-reload
6、修改账号密码
#1、查看MySQL为Root账号生成的临时密码
grep "A temporary password" /var/log/mysqld.log
#2、进入MySQL shell
mysql -u root -p
#3、修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
7 、开启 MySQL 远程连接
#选择 mysql 数据库:
USE mysql;
#在 mysql 数据库的 user 表中查看当前 root 用户的相关信息:
SELECT host, user, authentication_string, plugin FROM user;
#设置root 用户远程访问:
update user set host = '%' where user ='root';
#刷新权限:
FLUSH PRIVILEGES;
#授权的所有权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
#更新 root 用户密码及加密规则(如果客户端不支持加密插件):
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'MyNewPass4!';
#刷新权限:
FLUSH PRIVILEGES;
8、新建远程用户
#1、新建远程用户
CREATE USER 'devops'@'%' IDENTIFIED BY 'MyNewPass3!';
#2、赋予指定账户指定(数据库名称.表名)远程访问权限
GRANT ALL PRIVILEGES ON mydb_name.* TO 'devops'@'%';
#3、查看权限
SHOW GRANTS FOR 'devops'@'%';
#4、收回权限
REVOKE ALL PRIVILEGES ON *.* FROM 'devops'@'%';
#5、删除用户
DROP USER 'devops'@'%';
#6、刷新权限
FLUSH PRIVILEGES;
9、 找回密码
如果忘记了MySQL root密码,可以用以下方法重新设置:
#1.关闭MySQL
service mysqld stop
#2.用以下命令启动MySQL,以不检查权限的方式启动;
service mysqld start --skip-grant-tables
#3.然后用空密码方式使用root用户登录 MySQL;
mysql -u root
10、启动失败
1.端口问题
[ERROR] Can't start server: Bind on TCP/IP port: Permission denied
解决方案: 切换SELinux运行模式为
permissive
临时生效
#执行命令
setenforce 0
#查询结果
getenforce
重启生效
#编辑文件
vim /etc/selinux/config
#修改SELINUX值
SELINUX=permissive
2.权限问题
chown mysql:mysql -R /var/run/mysqld
/usr/sbin/mysqld --user=mysql &
3.端口问题
[Warning] IP address '192.168.0.212' has been resolved to the host name '212.def.gh', which resembles IPv4-address itself.
添加
skip-name-resolve
,跳过IP反解析成域名的过程,促使客户端建立连接加快。这样只是影响MySQL不能使用主机名来授权给用户
#编辑文件
vim /etc/my.cnf
#添加参数
[mysqld]
skip-name-resolve
网友评论