CentOS7.9编译安装MySQL 8.0

CentOS 运维避坑实战

CentOS7.9 安装 Python3.8.16 后 yum 报错,快速修复方案

编译安装MySQL 8.0

OS: CentOS 7.9

DB: MySQL 8.0.0

一、安装依赖和cmake3
yum install -y wget gcc ncurses libaio-devel openssl libatomic cmake3 git gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel bzip2 openssl-devel libtirpc-devel.x86_64

yum -y install centos-release-scl scl-utils-build
yum -y install devtoolset-11-gcc.x86_64 devtoolset-11-gcc-c++.x86_64 devtoolset-11-gcc-gdb-plugin.x86_64
二、安装GCC 9.5.0
wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-9.5.0/gcc-9.5.0.tar.gz
[root@localhost]# tar zxf gcc-9.5.0.tar.gz
[root@localhost]# cd gcc-9.5.0
[root@localhost gcc-9.5.0]# ./contrib/download_prerequisites
[root@localhost gcc-9.5.0]#./configure --prefix=/usr/local/gcc --enable-boostrap --enable-checking=release --enable-languages=c,c++ --disable-multilib
[root@localhost]# echo  "export PATH=/usr/local/gcc/bin:$PATH" >> /etc/profile.d/gcc.sh
[root@localhost]#source /etc/profile.d/gcc.sh
[root@localhost]#yum remove gcc -y
[root@localhost]#ln -sf /usr/local/gcc/include/ /usr/include/gcc
[root@localhost]#ldconfig -v
[root@localhost]#ldconfig -p|grep gcc
[root@localhost]#gcc -v
[root@localhost]#ln -sf /usr/local/gcc/bin/c++ /usr/bin/
[root@localhost]#ln -sf /usr/local/gcc/bin/gcc /usr/bin/cc
三、编译MySQL
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_BOOST=/opt/soft/mysql-8.0.35/boost
make && make install
编译报错:

[ 8%] Generating …/include/mysqld_error.h, …/sql/share/english/errmsg.sys
./comp_err: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21' not found (required by ./comp_err) ./comp_err: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20’ not found (required by ./comp_err)
make[2]: *** [include/mysqld_error.h] Error 1
make[1]: *** [extra/CMakeFiles/GenError.dir/all] Error 2
make: *** [all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.b69dlI (%build)

strings /usr/lib64/libstdc++.so.6 |grep GLIBC
[root@localhost ~]# strings /usr/lib64/libstdc++.so.6 |grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.4
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
解决方法:下载ibstdc++.so.6.0.26 上传到/usr/lib64目录
[root@localhost ~]# mv libstdc++.so.6.0.26 /usr/lib64/
[root@localhost ~]# ln -sf /usr/lib64/libstdc++.so.6.0.26 /usr/lib64/libstdc++.so.6
[root@localhost ~]# strings /usr/lib64/libstdc++.so.6 |grep GLIBC
四、 创建MySQL用户组
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql
五、 创建数据目录、日志目录,配置文件目录
mkdir /usr/local/mysql/data
mkdir /usr/local/mysql/log
chown -R mysql:mysql /usr/local/mysql/
六、 编辑MySQL配置文件
[client]
port=3306
socket=/tmp/mysql.sock

[mysqld]
port=3306
user = mysql
socket=/tmp/mysql.sock
tmpdir = /tmp
key_buffer_size=256M
max_allowed_packet=128M
default_authentication_plugin=mysql_native_password 
open_files_limit = 60000
explicit_defaults_for_timestamp
server-id = 1
character-set-server = utf8	
federated
max_connections = 1000	
group_concat_max_len = 102400	
max_connect_errors = 100000
table_open_cache = 4096
event_scheduler = ON
skip-name-resolve
lower_case_table_names = 1	
interactive_timeout = 86400
wait_timeout = 86400
sync_binlog=0
back_log=100
default-storage-engine = InnoDB
log_slave_updates = 1
binlog_cache_size = 32M
max_heap_table_size = 256M
read_rnd_buffer_size = 64M
sort_buffer_size = 256M
join_buffer_size = 512M
thread_cache_size = 300
log_bin_trust_function_creators = 1	
read_buffer_size = 32M
read_rnd_buffer_size = 128M
bulk_insert_buffer_size = 512M
sql_mode='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER,ERROR_FOR_DIVISION_BY_ZERO'
transaction_isolation = READ-COMMITTED	
tmp_table_size = 512M

log-bin=mysql-bin
binlog_format=mixed
expire_logs_days = 15
slow_query_log = 1
slow_query_log_file = /usr/local/mysql/log/slow.log
long_query_time = 5
innodb_buffer_pool_size = 512M
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 32M
innodb_log_file_size = 1024M
innodb_log_files_in_group = 4
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120

[mysqldump]
quick
max_allowed_packet = 64M

[client]
password="my password"

[mysqladmin]
force

[mysql]
no-auto-rehash

[myisamchk]
key_buffer = 16M
sort_buffer_size = 16M
read_buffer = 8M
write_buffer = 8M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
open-files-limit = 65535	
log-error=/usr/local/mysql/log/mysqld.log
pid-file=/usr/local/mysql/log/mysqld.pid
七、 初始化数据库
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

输出结果:

.........
2024-01-30T10:13:40.227290Z 0 [Warning] CA certificate ca.pem is self signed.
2024-01-30T10:13:40.640989Z 1 [Note] A temporary password is generated for root@localhost: FwIai&pq*3v3 #临时密码
八、配置环境变量
vim /etc/profile.d/mysql.sh
export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile.d/mysql.sh
九、 配置开机启动 使用systemd管理mysql服务
[root@dxm system]# vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
RuntimeDirectory=mongodb
RuntimeDirectoryMode=0751
PIDFile=/usr/local/mongodb/mongod.pid
ExecStart=/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/mongodb.conf
PrivateTmp=false

[Install]
WantedBy=multi-user.target


chmod 754 /usr/lib/systemd/system/mongodb.service
systemctl daemon-reload
systemctl enable mysqld
systemctl start mysqld
systemctl status mysqld
十、 登录MySQL 使用临时密码
mysql -uroot -pFwIai&pq*3v3
十一、 修改密码
#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;	#NAVER永不过期

# 使用WITH mysql_native_password加密
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456' PASSWORD EXPIRE NEVER;

#刷新授权表
flush privileges;

CentOS 运维避坑实战

CentOS7.9 安装 Python3.8.16 后 yum 报错,快速修复方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空城旧梦S

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值