Linux知识库
Linux基础知识!
Linux格式化硬盘以及格式化分区
linux基础常用知识
linux更换yum源
linux挂载windows SMB共享目录
linux开机启动级别
linux网卡配置
linux配置SMB服务
CentOS 8 firewalld配置
Linux软件管理:RPM软件包与YUM管理
Linux用户与组概念
Linux文件与目录权限基础
Linux计划任务管理
Linux中文本文件内容的查看
Linux基础-服务(service)和systemd管理服务
Vim编辑器基本操作
apt更换国内源
Linux程序服务!
Code-server在线编程服务器部署
Cloudreve网盘搭建
Emby多媒体影音系统搭建
chevereto图床搭建教程
Frp内网穿透服务器搭建
FTP服务器搭建
gitlab服务器搭建
Plex搭建
syncthing同步服务器搭建
Wordpress博客搭建
Typecho博客搭建
zabbix搭建(失败)
Aria2离线下载服务器搭建
KMS激活服务器搭建
CentOS搭建NTP服务
Grafana部署与Zabbix集成,部署开源IT系统监控平台
Linux应用环境搭建配置!
nginx编译安装
PHP8编译安装
Linux 关闭selinux
yum安装redis数据库
宝塔环境无法删除.user.ini
宝塔面板安装
mysql8.0.29编译安装
nginx安装(yum方式)
Linux系统基础知识
Linux命令行基础知识
使用Cerbot申请免费证书
ModSecurity 安装编译与连接nginx
Zabbix6.4.8安装部署
本文档使用 MrDoc 发布
-
+
首页
mysql8.0.29编译安装
# CentOS8 源码编译安装mysql 系统环境:CentOS Linux release 8.5.2111 Mysql版本:mysql8.0.29 ## 下载 ```shell # 使用带boost版本的源码包 mkdir /www/mysql mkdir /www/mysql/etc mkdir /www/mysql/data https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.29.tar.gz tar -zxvf mysql-boost-8.0.29.tar.gz ``` ## 创建用户 ```shell # 创建组 groupadd mysql # 创建用户设置不允许登陆bash useradd mysql -g mysql -M -s /sbin/nologin ``` ## 安装配置 关闭防火墙和selinux,防止安装出现文件写入报错等问题。 ```shell systemctl stop firewalld setenforce 0 ``` 安装各种依赖环境: ```shell yum -y install ncurses ncurses-devel cmake patchelf yum -y install wget cmake gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel libtirpc-devel yum install -y pcre pcre-devel yum install gcc-toolset-11-gcc gcc-toolset-11-gcc-c++ gcc-toolset-11-binutils yum install libudev-devel ``` 预编译: ```shell # 对应目录配置自己的路径,对应的解析自行查询咯 cmake . \ -DCMAKE_INSTALL_PREFIX=/www/mysql \ # 安装目录 -DSYSCONFDIR=/www/mysql/etc \ # 配置文件路径 -DSYSTEMD_PID_DIR=/www/mysql \ # pid文件路径 -DDEFAULT_CHARSET=utf8 \ # 默认编码规则 -DDEFAULT_COLLATION=utf8_general_ci \ # 默认排序集 -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_SSL=system \ # 启用SSL -DWITH_READLINE=1 \ -DMYSQL_DATADIR=/www/mysql/data \ # 数据库数据目录 -DWITH_BOOST=./boost \ # boost在当前目录,相对目录 -DWITH_SYSTEMD=1 \ -DFORCE_INSOURCE_BUILD=1 ``` 开始等待。 如果出现报错rpcgen,还有其他的报错也需要一个个安装依赖解决。 ```shell # rpcgen下载 wget https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz # tar解压 # 进入目录 cd rpcsvc-proto-1.4 ./configure make && make install ``` 重新开始预编译,如果没有出现报错,提示build已经在目录下开始安装就可以开始安装了。 ```shell # 看服务器配置,大概需要半个小时到一个小时-j n,代表核心,还有mysql8需要内存尽量大,否则出现内存不足报错,我这次直接给了8G make -j 2 && make install ``` 修改目录权限: ```shell # 修改安装目录的用户和组 chown -R mysql:mysql mysql # 修改执行权限 chmod -R 755 mysql ``` 创建配置文件my.cnf,下面是示例文件。用于初始化数据库,保存在/www/mysql/etc,然后链接到/etc ```shell # 参考配置文件 [mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 basedir=/www/mysql # 设置mysql数据库的数据的存放目录 datadir=/www/mysql/data socket=/www/mysql/data/mysql.sock # 允许 MyISAM 表的符号链接;8.0.26版本已弃用 symbolic-links=0 # 允许最大连接数 max_connections=1024 #任何给定 MySQL 用户帐户允许的最大同时连接数。值 0(默认值)表示 “没有限制。” max_user_connections=0 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=20 #SELECT语句 的执行超时 ,以毫秒为单位。如果值为 0,则不启用超时 max_execution_time=5000 #如果设置为OFF,MySQL 会中止 SELECT可能需要很长时间才能执行的语句(即,优化器估计检查的行数超过 的值的语句 max_join_size)。WHERE当发布了不明智的声明时,这很有用。新连接的默认值为 ON,它允许所有 SELECT语句。 sql_big_selects=OFF #查询返回数据行数最大值,超过此值则终止查询默认最大值18446744073709551615 max_join_size=10000 # 服务端使用的字符集默认为UTF8 character-set-server=utf8mb4 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 default_authentication_plugin=mysql_native_password #是否对sql语句大小写敏感,1表示不敏感 注意此参数在8.0版本后必须在初始化数据库之前配置,即初始化后不允许修改此值 lower_case_table_names = 1 #MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭 #MySQL默认的wait_timeout 值为8个小时, interactive_timeout参数需要同时配置才能生效 interactive_timeout = 1800 wait_timeout = 1800 #Metadata Lock最大时长(秒), 一般用于控制 alter操作的最大时长sine mysql5.6 #执行 DML操作时除了增加innodb事务锁外还增加Metadata Lock,其他alter(DDL)session将阻塞 lock_wait_timeout = 3600 #内部内存临时表的最大值。 #比如大数据量的group by ,order by时可能用到临时表, #超过了这个值将写入磁盘,系统IO压力增大 tmp_table_size = 64M max_heap_table_size = 64M [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8mb4 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8mb4 #mysql socket连接使用 [client] port=3306 #配合[mysqld] 下的socket socket=/www/mysql/data/mysql.sock ``` 初始化数据库 ```shell # 进入主目录,指定配置文件和目录等信息 cd /www/mysql ./bin/mysqld --defaults-file=/www/mysql/etc/my.cnf --user=mysql --basedir=/www/mysql --datadir=/www/mysql/data --character-set-server=utf8mb4 --initialize # 出现一个初始密码,记一下: C5?6.M_Zmg=y # 软连接到/etc ln -s /www/mysql/etc/my.cnf /etc/my.cnf ``` ## 服务启动 systemctl进程管理。 ```shell # 启动文件:将编译目录下的/www/mysql-8.0.29/script下的mysqld.service文件负责到systemctl管理目录 cd /www/mysql-8.0.29/script # 复制进程文件到目录下 cp mysqld.service /usr/lib/systemd/system/ # 刷新 systemctl-daemon-reload # 启动服务器端进程 systemctl start mysqld # 设置开机启动 systemctl enable mysqld ``` ## 客户端登陆以及设置 ```shell # 启动客户端进程 cd /www/mysql/bin ./mysql -uroot -p # 然后输入刚才初始化的密码 # 修改数据库密码和安全性设置 # 使用alter user修改密码 alter user 'root'@'localhost' identified by 'xxxxx'; # 刷新 flush privileges; # 修改root主机名为任意主机,允许远程连接 update mysql.user set host='%' where user='root'; # 刷新 flush privileges; # 查看服务端口 netstat -nltp # 查看进程 systemctl status mysqld # 将mysql客户端添加到环境变量 vim /etc/profile # 在文件末尾加上下面配置 PATH=$PATH:/www/mysql/bin export PATH # 刷新文件使其立即生效 source /etc/profile # 然后直接在任意目录输入都可以使用mysql客户端连接 mysql -uroot -p ``` 完成!这之间其实试了好几次,也有很多坑,走过才知道。
Chuck
2022年6月19日 17:36
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码