Linux系统安装mysql8.0.31(TAR方式)
文章目录
- Linux系统安装mysql8.0.31(TAR方式)
- 安装包的下载
- 安装Mysql8.0.31
- 注册成系统服务并自启动
- 问题总结
- 启动异常一
- 简单使用
安装包的下载
选择的是 MySQL Community Server 进行下载
官网下载地址https://dev.mysql.com/downloads/mysql/
选择对应版本,本人的Linux是CentOS7 ,可以选通用版(Linux - Generic)或者Red Hat Enterprise Linux / Oracle Linux。
安装Mysql8.0.31
将安装包分发到服务器中,文中采用的安装包的存放目录是/opt
。
-
新建用户组mysql和用户mysql,用户不能用来登录
groupadd mysql useradd -r -g mysql -s /bin/false mysql
-
创建相关目录(软件安装目录,mysql8安装目录,mysql数据目录,日志文件)
mkdir -p /opt/software; mkdir -p /opt/software/mysql; mkdir -p /opt/software/mysql/mysql8-files; mkdir -p /opt/software/mysql/logs/mysql8/; touch /opt/software/mysql/logs/mysql8/mysqld-error.log;
-
解压安装包 并进行重命名
# 解压包 tar -zvxf /opt/mysql-8.0.31-el7-x86_64.tar.gz -C /opt/software/mysql # 重命名文件夹 mv /opt/software/mysql/mysql-8.0.31-el7-x86_64 /opt/software/mysql/mysql8
-
在
mysql8
文件夹下新建用户级配置文件my.cnf
。touch /opt/software/mysql/mysql8/my.cnf; vim /opt/software/mysql/mysql8/my.cnf
填充以下基础配置。可以将一些优化配置添加进去。
[mysqld] # 设置表名不区分大小写 lower_case_table_names=1 basedir=/opt/software/mysql/mysql8 datadir=/opt/software/mysql/mysql8-files socket=/tmp/mysql.sock # 自定义服务端口 port=3309 # 修改数据库日志时间格式 log_timestamps=SYSTEM sql_mode=NO_ENGINE_SUBSTITUTION # 以下是优化项 视情况修改添加 wait_timeout=2880000 max_allowed_packet=128M interactive_time=280000 thread_concurrency=20 max_connections=1500 max_connect_errors=30 table_open_cache=1024 myisam_sort_buffer_size=32M bulk_insert_buffer_size=32M [mysqld_safe] log-error=/opt/software/mysql/logs/error.log
-
权限处理
# 为用户的添加文件夹的权限 chown -R mysql:mysql /opt/software/mysql # 对文件夹的赋权 chmod 750 /opt/software/mysql/mysql8-files
-
初始化mysql,获取root临时密码。由于
my.cnf
配置文件中配置的是表名不区分大小写,所以在初始化的时候也需要使用参数--lower-case-table-names
表名不区分大小写。否则Mysql启动会失败([ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dictionary ('0').
)。# 编译安装并初始化mysql cd /opt/software/mysql/mysql8;./bin/mysqld --initialize --user=mysql --basedir=/opt/software/mysql/mysql8 --datadir=/opt/software/mysql/mysql8-files --lower-case-table-names=1
执行结果 :
[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: zpjhj;4.<Dmp
,密码中存在特殊字符时,可以用单引号直接包裹密码。 -
启动Mysql服务
# 启动mysql服务 cd /opt/software/mysql/mysql8; ./support-files/mysql.server start
控制台输出:
Starting MySQL. SUCCESS!
启动成功之后会在对应的日志中输出日志,并且默认在
/opt/software/mysql/mysql8-files
中生成’${hostname}.pid’。 -
配置环境变量(临时方式)
export PATH=$PATH:/opt/software/mysql/mysql8/bin
-
登录Mysql,支持远程登录
# 使用临时密码登录 mysql -u root -p'zpjhj;4.<Dmp' # 修改root初始化密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; flush privileges; exit mysql -u root -p'123456' # 使root支持远程登录 use mysql; update user set host='%' where user='root'; flush privileges;
-
使用DBeaver进行远程登录
-
简单库操作
# 创建数据库 tutorial CREATE DATABASE tutorial; show databases; # 创建用户tutorial 支持远程 CREATE USER 'tutorial'@'%' identified by 'tutorial'; use mysql; select user from user; # 将数据库tutorial权限授予用户tutorial GRANT ALL ON tutorial.* TO 'tutorial'@'%'; SHOW GRANTS FOR 'tutorial'@'%';
注册成系统服务并自启动
实现支持mysql命令,mysql服务系统化,可满足随系统开机自启动。
# mysqld服务到系统
cd /opt/software/mysql/mysql8;
cp -a ./support-files/mysql.server /etc/init.d/mysql;
# 授权以及添加服务
chmod +x /etc/init.d/mysql
chkconfig --add mysql
service mysql start
service mysql status
# 将mysql命令添加到服务
ln -s /opt/software/mysql/mysql8/bin/mysql /usr/bin
问题总结
启动异常一
./support-files/mysql.server:行239: my_print_defaults: 未找到命令
./support-files/mysql.server: 第 259 行:cd: /usr/local/mysql: 没有那个文件或目录
Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
解决方案
编辑文件/opt/software/mysql/mysql8/support-files/mysql.server
,给脚本最初的变量basedir
和datadir
进行赋值,应该在46和47行
basedir=/opt/software/mysql/mysql8
datadir=/opt/software/mysql/mysql8-files
简单使用
创建数据库 tutorial
CREATE DATABASE tutorial;
show databases;
创建用户tutorial 支持远程
CREATE USER 'tutorial'@'%' identified by 'tutorial';
use mysql;
select user from user;
将数据库tutorial权限授予用户tutorial
GRANT ALL ON tutorial.* TO 'tutorial'@'%';
SHOW GRANTS FOR 'tutorial'@'%';
以上操作之后,可以通过自定义用户和数据库进行愉快的使用了。