目录
1、下载安装包
官方网站下载:https://www.mysql.com/
2、上传文件
- 进入安装目录
cd /opt/mysql
- 解压
tar -xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz
- 重命名
mv mysql-8.0.23-linux-glibc2.12-x86_64 mysql-8.0.23
3、创建用户组以及用户和密码 并授权
- 创建用户组以及用户和密码
groupadd mysql
useradd -g mysql mysql
- 授权用户 (如:下列配置 my.cnf 时指定的目录都需给 mysql 用户授权)
chown -R mysql.mysql /opt/mysql/mysql-8.0.23
4、初始化基础信息
(切记切记 设置不区分大小写得在初始化时设置)
- 创建 data 数据存储目录
mkdir data
- 切换到 bin 目录下
cd bin
- 初始化基础信息 切记切记切记 mysql8 一定要在初始化时设置 不区分大小写,不然后续修改和删除重装没区别
- 初始化后在原始 my.con 下 lower_case_table_names = 1 是无效的,所以一定要在初始化时加上 --lower-case-table-names=1
./mysqld --user=mysql --basedir=/opt/mysql/mysql-8.0.23 --datadir=/opt/mysql/mysql-8.0.23/data/ --initialize --lower-case-table-names=1
5、编辑 my.cnf 文件
my.cnf 还有很多可设置属性,详情请查看官方文档,此处仅设置主要参数配置 my.cnf 的文件路径 文件夹必须存在(不存在文件时,启动会提示文件不存在)
#设置 mysql 的安装目录
basedir=/opt/mysql/mysql-8.0.23
#设置 mysql 数据库的数据的存放目录
datadir=/opt/mysql/mysql-8.0.23/data
#设置客户端默认字符集
character-set-server=UTF8MB4
创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#设置是否区分大小写(初始化后此参数在这里也必须存在)
lower_case_table_names=1
默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
–
#注释 mysqld_safe 下的所有配置 系统会输出到 datadir 目录下
#[mysqld_safe]
#log-error=/var/log/mysqld.log
#pid-file=/var/run/mysqld/mysqld.pid
6、添加 mysqld 服务到系统 授权以及添加服务
- 进入主目录
cd /opt/mysql/mysql-8.0.23
- 添加 mysqld 服务到系统
cp -a ./support-files/mysql.server /etc/init.d/mysql
- 授权以及添加服务
chmod +x /etc/init.d/mysql
chkconfig --add mysql
7、启动服务
service mysql start #服务启动
service mysql status #查看服务状态
service mysql stop #停止服务
service mysql restart #重启服务
当启动服务的时候可能会提示文件夹没有权限 ,日志在 datadir下可查看 设置 mysql 权限即可
例如:
chown -R mysql:mysql /opt/mysql/mysql-8.0.23/data
建立服务同步连接(不明白 ln -s 的小伙伴可以百度查询一下该命令的作用 )
ln -s /opt/mysql/mysql-8.0.23/bin/mysql /usr/bin
8、登录 mysql
- 进入 mysql 控台
mysql mysql -uroot -p
- 修改密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’;
- 刷新权限
flush privileges;
9、配置外网连接授权
- 选择 mysql 数据库
use mysql;
- 修改 root 用户的连接地址现在 localhost 为本机 也可指定固定 ip 此处 % 开启所有 ip 访问
update user set host=‘%’ where user=‘root’;
- 刷新权限
flush privileges;
- 退出
exit;