下载安装包
官网地址:MySQL :: Download MySQL Community Server
安装完成后,将压缩包传到Linux中的 /usr/local 目录下。
安装步骤
1.解压
tar -vxJf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
2. 移动并重命名解压后的mysql-8.0.27-linux-glibc2.12-x86_64文件夹到 /usr/local/mysql8.0/ 目录下
mv mysql-8.0.27-linux-glibc2.12-x86_64 /usr/local/mysql8.0
3. 添加用户组
groupadd mysqluser
4. 创建用户并添加到用户组
useradd -r -g mysqluser mysqluser
5. 在/usr/local/mysql8.0/文件夹下创建data、log目录用于存放数据和日志
mkdir data
mkdir log
6. 更改mysql8.0文件夹的所有者为mysqluser用户/组
chown -R mysqluser.mysqluser /usr/local/mysql8.0
注:最好创建好 data、log这两个目录后再赋权限,否则启动mysql时会提示没有这两个目录的权限,还需要在执行一次这个命令。
7. 在/etc目录下创建my.cnf配置文件(如果已有配置文件,直接编辑即可)
vi /ect/my.cnf
[mysqld]
#表名不区分大小写
lower_case_table_names=1
#跳过验证
#skip-grant-table
#默认存储引擎
default-storage-engine=InnoDB
#用户
user = mysqluser
#默认端口
port = 3306
#socket通信
socket=/tmp/mysql.sock
#mysql的安装目录
basedir=/usr/local/mysql8.0
#数据文件
datadir=/usr/local/mysql8.0/data
#允许最大连接数
max_connections=512
#等待关闭连接时间
wait_timeout=600
#服务端字符集
character-set-server=utf8mb4
#错误日志
log-error=/usr/local/mysql8.0/log/error.log
完成后点击 esc 退出编辑模式,接着输入 shift+: ,最后 输入 wq 保存退出
(q! 不保存退出) ,如果在编辑模式下不正常退出,再次编辑my.cnf 时会出错,删除
my.cnf.swp 文件即可再次进入编辑(rm -rf my.cnf.swp)
注:mysql8.0以后的版本,在linux下表名严格区分大小写,可以在配置文件中加入 lower_case_table_names=1 来取消大小写区分,但是需要在mysql初始化前就加入,初始化后加入,会导致mysql无法启动。查询资料后发现,mysql8.0及以上版本,初始化后,配置文件无法修改。基于此特性,最好把 skip-grant-table 这行代码也加上,防止以后忘记密码,可以跳过密码验证直接登录mysql,但是需要注意的是,在初始化时,要把这行代码注释掉,否则无法进行初始化(后续打开这行代码有没有生效没试过)。其他一些配置根据项目的需求进行设置。
8. 初始化MySQL
有密码初始化: --initialize
无密码初始化: --initialize -insecure
建议使用无密码初始化,防止忘记密码。
配置环境变量
vi /etc/profile
/**
* 在文件末尾加上 export PATH=$PATH:/usr/local/mysql8.0/bin
*
* 然后执行 source /etc/profile 命令 刷新环境变量配置文件
*/
设置MySQL开机自启
// 复制脚本到资源目录
cp -a /usr/local/mysql8.0/support-files/mysql.server /etc/rc.d/init.d/mysqld
// 授权
chmod +x /etc/rc.d/init.d/mysqld
// 添加为服务
chkconfig --add mysqld
启动MySQL:
service mysqld start
见到:Starting MySQL....... SUCCESS! 即表示启动成功。
登录MySQL
mysql -u root -p
/**
* 回车后提示需要输入密码,如果初始化时使用了 无密码初始化,在这里再敲一次回车键即可。初始化时
* 使用了有密码初始化,在这里输出密码即可。
*
* 实验中使用的是 无密码初始化,此处再次点击回车键。
*
*/
1. 修改root密码
// 修改 root 用户的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '2021@Root';
// 创建用户并允许远程连接( @'%' 表示 允许所有ip连接)
CREATE USER 'testUser'@'%' IDENTIFIED WITH mysql_native_password BY '2021@testUser';
// 给 testUser 用户授权
grant execute ,insert,select ,update on 数据库名称.* to 'testUser'@'%';
// 刷新
FLUSH PRIVILEGES;
注:由于mysql8.0默认的密码加密规则的原因,在创建/修改用户密码是 需要指定密码
加密规则(mysql_native_password )否则使用 Navicat 时会报错。
完成
最后使用 Navicat 连接mysql。