目录
网络源
linux操作
先搜索有没有安装低版本的mysql5.7或者和mysql冲突的mariadb
# 因为我们要安装8版本的mysql 所以先搜索有没有安装低版本的mysql5.7或者和mysql冲突的mariadb
rpm -qa|grep -i mysql
rpm -qa|grep -i mariadb
卸载冲突软件 一定要卸载,否则会导致安装mysql失败
# 卸载冲突软件时要加上,上一条搜索出来的软件包名
# 如yum remove mysql57-community-release 或者 yum remove mariadb-libs-5.5.68-1.el7.x86_64
yum remove mariadb
yum remove mysql
安装mysql的依赖包,wget,解压源码包时所用的依赖库
# libaio是mysql的依赖库
yum install libaio
# wget是下载mysql源码包的工具
yum install -y wget
增加一个mysql的user
# 增加一个mysql的user只是mysql用户组的组员,并没有实际的权限,只是为了方便管理
useradd -M -s /sbin/nologin mysql
解压源码包到当前目录
# 找个自己方便管理的地方解压或者使用-C参数指定解压目录
# 如果没有源码包可以使用wget下载
wget https://dev.mysql.com//get/Downloads/MySQL-8.0/mysql-8.0.36-linux-glibc2.12-x86_64.tar.xz
tar -xvJf ./mysql-8.0.36-linux-glibc2.12-x86_64.tar.xz
给mysql改一个简单的名字
# 给mysql改一个简单的名字方便管理
mv mysql-8.0.36-linux-glibc2.12-x86_64.tar.xz mysql8
编辑/etc下的mysql配置文件my.cnf
# 如果前面卸载mariadb时没有备份配置文件可以自己touch一个,自己写
vi /etc/my.cnf
my.cnf配置文件解释如下:
[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
server-id = 3306
user = mysql
socket = /tmp/mysql.sock
# 安装目录 改自己的目录
basedir = /home/mysql8
# 数据存放目录 改自己的目录 不要打开注释
# datadir = /home/mysql8/data
# innodb数据存放东西 改自己的目录
innodb_data_home_dir =/home/mysql8
innodb_log_group_home_dir =/home/mysql8
# 日志及进程数据的存放目录
log-error =/var/log/mysql.log
# 进程pid文件 改自己的目录
pid-file =/home/mysql8/mysql.pid
# 服务端字符集
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
# 创建表时使用的默认存储引擎
default_storage_engine = InnoDB
移动到mysql根目录下
cd /home/mysql8/bin
创建mysql的log文件
# 不创建会报找不到的错
touch /var/log/mysql.log
增加日志权限以及mysql根目录的权限
# 没有权限也会报mysql无权写入日志的错
# 将mysql根目录及mysql.log文件权限改为mysql用户组
chown -R mysql:mysql /home/mysql8 && chown -R mysql:mysql /var/log/mysql.log
mysql数据库的data序列化
# 一定要指定配置文件,按照刚刚写好的配置文件启动初始化数据库
# 这里的--initialize-insecure参数是为了跳过密码验证,方便测试
# 如果报错删除mysql根目录下的data文件夹,查询mysql.log解决后再次初始化
mysqld --defaults-file=/etc/my.cnf --basedir=/home/mysql8 --datadir=/home/mysql8/data --user=mysql --initialize-insecure
启动mysql服务
# 这里的绝对路径改成自己的mysql根目录
/home/mysql8/support-files/mysql.server start
登录mysql数据库
# 首次登录无密码需要修改密码及给远程访问权限
./mysql -uroot
mysql sql语句如下:
首次登录需要修改密码
# 给本地连接的用户设置密码
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
# 刷新权限
flush privileges;
数据库远程连接授权
# 使用 mysql database
use mysql;
# 查询user,host字段在user表
select user,host from user;
# 创建远程连接用户若不想任何ip都能访问则可以将%改成要访问的ip多个ip用逗号隔开
create user 'root'@'%';
# 授权任何ip可以访问
grant all privileges on *.* to 'root'@'%';
# 改变远程连接用户密码加密方式
alter user 'root'@'%' identified with mysql_native_password by '123456';
# 更改密码有效期为永久
alter user 'root'@'%' identified by '123456' password expire never;
# 刷新权限
flush privileges;
# 退出mysql
exit;
linux操作
增加软连接到命令目录
# 这里的绝对路径改成自己的mysql根目录 链接后可以使用直接使用mysql命令
ln -s /home/mysql8/bin/mysql /usr/bin/mysql
增加mysql服务到开机服务目录
# 使mysql服务可以让systemctl统一管理
cp /home/mysql8/support-files/mysql.service /etc/init.d/mysql
设置自动启动mysql服务
# 启动mysql服务
systemctl start mysql
# 设置mysql服务开机启动
systemctl enable mysql
标签:log,3.10,linux,36,centos7,mysql8,user,mysql,home
From: https://www.cnblogs.com/muqiu469732/p/18157100