linux环境部署--MySQL8.0.25二进制源码文件安装
linux环境部署--MySQL8.0.25二进制源码文件安装
1、下载mysql-8.0.25
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz
2、将安装包解压到 /usr/local/
xz -d mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz
xz文件解压成tar
tar -xvf mysql-8.0.25-linux-glibc2.12-x86_64.tar
mv mysql-8.0.25-linux-glibc2.12-x86_64 /usr/local/mysql
3、进入 support-files目录
cd /usr/local/mysql/support-files/
4、修改 vim /etc/my.cnf
[client]
port=3306
socket = /tmp/mysql.sock
loose-default-character-set = utf8
[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket = /tmp/mysql.sock
wait_timeout=2880000
interactive_timeout = 2880000
max_allowed_packet = 256M
sort_buffer_size = 8M
max_connections=2000
max_user_connections=800
default-storage-engine=INNODB
lower_case_table_names=1
character-set-server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqldump]
quick
max_allowed_packet = 256M
[mysql]
no-auto-rehash
default-character-set=utf8
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M
[mysqlhotcopy]
interactive-timeout
参数
- max_connections
允许的同时客户的数量。增加该值增加 mysqld 要求的文件描述符的数量。这个数字应该增加,否则,你将经常看到 Too many connections 错误。 默认数值是100
- socket
参数的作用是指定MySQL服务监听的Unix套接字文件路径。通过该套接字连接MySQL服务,可以使用本机上的客户端工具与MySQL进行通信,而不需要经过网络传输。
- loose-default-character-set
参数是用来指定MySQL数据库默认字符集的。与default-character-set参数不同的是,loose-default-character-set参数可以被外部程序随时改变它的值,同时如果该参数未被正式设置,其缺省值将会是由MySQL二进制可执行文件自身决定的字符集编码。
- port
端口:默认3306
- basedir
安装路径
- datadir
数据路径
- wait_timeout
用于指定一个客户端连接在没有任何活动后需要等待的秒数,之后该连接就会被自动关闭。
- interactive_timeout
用于指定当客户端连接处于交互状态时(即有命令正在执行),多长时间内没有活动就会自动关闭该连接。
- interactive_timeout
用于指定排序时使用的缓冲区大小
- max_user_connections
用于限制一个用户在同一时间内最多可以创建的连接数。当一个用户尝试创建超过max_user_connections个连接时,MySQL会拒绝该用户的连接请求并给出错误提示。
- default-storage-engine
指定默认的存储引擎
- lower_case_table_names
用于指定在创建数据库和表名时是否强制将名字转换为小写。该变量的值可以是0、1或2
-- 0:不将数据库名和表名转换为小写,区分大小写。
-- 1:将数据库名和表名转换为小写,不区分大小写。
-- 2:将数据库名转换为小写,在存储表名时保留原始大小写,区分大小写。
需要注意的是,如果启用了lower_case_table_names=1,则在创建表时使用大写字母或者混合大小写命名可能导致意外的错误,因为MySQL将所有表名都转换为小写。
- sql_mode
它决定了 MySQL 在执行 SQL 语句时所遵循的规则和标准,包括如何处理数据、如何比较字符串、如何处理 NULL 值等等。下面是一些常见的 sql_mode 参数及其作用:
STRICT_TRANS_TABLES:强制 MySQL 执行事务时使用严格的表模式。当这个参数设置为 ON 时,如果插入的数据不符合表定义的类型,MySQL 会报错而不是插入默认值或截断数据。
NO_AUTO_CREATE_USER:禁止 MySQL 在 CREATE USER 语句中自动创建用户。当这个参数设置为 ON 时,如果你在 CREATE USER 语句中指定了不存在的用户,MySQL 不会自动创建该用户,而是报错。
NO_ENGINE_SUBSTITUTION:禁止 MySQL 在无法使用指定存储引擎时使用默认存储引擎。当这个参数设置为 ON 时,如果你在创建表时指定了不存在的存储引擎,MySQL 不会使用默认存储引擎,而是报错。
ONLY_FULL_GROUP_BY:强制 MySQL 对 GROUP BY 子句中的所有列进行分组。当这个参数设置为 ON 时,如果你在 SELECT 语句中使用了 GROUP BY 子句,但 SELECT 列中包含了未被 GROUP BY 的列,MySQL 会报错。
ANSI_QUOTES:启用 ANSI 标准中的双引号作为标识符引用符。当这个参数设置为 ON 时,你可以使用双引号来引用数据库对象名称,例如 "table_name"。
5、复制mysql.server到/etc/init.d/目录下,目的想实现开机自动启动
cp mysql.server /etc/init.d/mysql
6、修改 /etc/init.d/mysql参数
vi /etc/init.d/mysql
添加
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
7、创建一个操作数据库的专门用户
-
groupadd mysql
#建立一个mysql的组 -
useradd -r -g mysql mysql
#建立mysql用户,并且把用户放到mysql组 -
passwd mysql
#给mysql用户设置一个密码 -
chown -R mysql:mysql /usr/local/mysql/
#给目录/usr/local/mysql 更改拥有者
8、初始化 mysql 的数据库
-
cd /usr/local/mysql/bin/
首先去到mysql的bin目录 -
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
初始化
libaio 库缺少
[root@iZbp14092wv2qdy4zhvkeyZ bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
如果存在这个报错
安装 libaio 库: 在 CentOS 或其他 Red Hat 系列的系统上,您可以通过以下命令安装该库:
bash
复制代码
yum install libaio
-
service mysql start
启动mysql -
ps -ef | grep mysql
发现有以上进程便代表启动成功
-
登录数据库
./mysql -uroot -p
-
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY '新密码';
刷新权限flush privileges;
-
设置远程访问
创建root用户任意远程访问
CREATE user 'root'@'%';
alter user 'root'@'%' identified with mysql_native_password by '新密码';
flush privileges;
-
远程root数据库权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
退出mysql
exit
9. 设置开机自启动
chkconfig --add mysql
添加服务mysql
chkconfig mysql on
设置mysql服务为自动
查看MySQL服务 ,重启服务器,测试是否成功。
chkconfig --list
init 6
重启查看进程
提示:输入init 6 后敲回车,系统开始重启,Xshell链接会中断,等两三分钟后再Xshell重新链接。
ps -ef | grep mysql
查看进程