CentOS完整安装MySQL的详细步骤
在给自建的服务器安装mysql的时候突然想起来写一篇关于Centos安装mysql数据库的文章,也方便我下次查看巩固下知识
首先第一步(简单粗暴)
直接上代码:
使用wget 直接下载(也可以本地上传)
wget http://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm
然后再安装软件源
rpm -Uvh mysql80-community-release-el7-1.noarch.rpm
安装mysql服务端
yum install -y mysql-community-server
这个地方我遇到了一个bug
需要引入GPG公钥
此时先执行这样一条命令:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
然后再次安装
yum install -y mysql-community-server
出现上面这张图就说明mysql已经安装成功了
但是还没完
配置MySQL(重点)
安装完之后千万别急着启动!!!
踩坑:之前已经安装好启动了,但没有设置表名大小写不敏感,就想通过修改/etc/my.cof 添加lower_case_table_names=1,结果mysql启动报错,只能重装卸载mysql或者不修改
查看MySQL80的官方文档,有记录:
lower_case_table_names can only be configured when initializing the server. Changing the lower_case_table_names setting after the server is initialized is prohibited.
所以必须先对数据库进行配置后再启动,因为你一旦启动就等于进行了初始化
数据库配置是通过/etc/my.cnf文件进行配置,这里配置一下字符集为utf8mb4,打开my.cnf文件:vim /etc/my.cnf ,在文件末尾添加:
# 设置数据库字符集为utf8mb4
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
lower_case_table_names = 1 # 表名不区分大小写
修改完成后,启动MySQL服务:
systemctl start mysqld
#查看MySql启动状态
systemctl status mysqld
#设置开机启动
systemctl enable mysqld
启动后修改下mysql的配置文件my.cnf设置密码为空
vi /etc/my.cnf
#添加跳过密码验证
skip-grant-tables
#重启mysql服务
systemctl start mysqld
或者查看初始密码
grep 'temporary password' /var/log/mysqld.log
登录数据库
mysql -uroot -p
登录之后修改密码策略和初始密码
use mysql;
set global validate_password.policy=0;
set global validate_password.length=1;
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
授权账号远程登录
CREATE USER `root`@`%` IDENTIFIED BY 'root';
GRANT ALL ON *.* TO `root`@`%` WITH GRANT OPTION;
navicat访问的话,需设置允许远程访问,并修改密码加密方式,不改加密方式navicat连接会报错:
alter user 'root'@'%' identified with mysql_native_password by '你的密码';
#刷新权限
FLUSH PRIVILEGES;
这样就安装完成了,可以正常使用mysql了。