centos编译安装mysql8.0
1:检查编译库
Mysql8.0要求gcc的版本在4.8以上,版本低于4.8,需要自行升级:
(1):
bash
复制代码
wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.gz
(2):
复制代码
tar xf gcc-4.8.2.tar.gz
(3):
bash
复制代码
cd gcc-4.8.2
(4):载编译需要的依赖包:
bash
复制代码
./contrib/download_prerequisites
(5):
css
复制代码
./configure --prefix=/usr/local/gcc-4.8.2/ --enable-bootstrap --enable-threads=posix --enable-languages=c,c++,objc,obj-c++
(6):
go
复制代码
make -j4
(7):
go
复制代码
make install
说明:make的时间会很长。
安装完后,还需要将原来的gcc环境用新版本的gcc替换掉,否则mysql在安装时还是用的原来的gcc,
依次执行:
bash
复制代码
mv /usr/bin/gcc /usr/bin/gcc447 mv /usr/bin/g++ /usr/bin/g++447 mv /usr/bin/c++ /usr/bin/c++447 mv /usr/bin/cc /usr/bin/cc447 ln -s /usr/local/gcc-4.8.2/bin/gcc /usr/bin/gcc ln -s /usr/local/gcc-4.8.2/bin/g++ /usr/bin/g++ ln -s /usr/local/gcc-4.8.2/bin/c++ /usr/bin/c++ ln -s /usr/local/gcc-4.8.2/bin/gcc /usr/bin/cc mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak ln -s /usr/local/gcc-4.8.2/lib64/libstdc++.so.6.0.18 /usr/lib64/libstdc++.so.6
接着,安装boost库:
bash
复制代码
wget -c http://sourceforge.net/projects/boost/files/boost/1.60.0/boost_1_60_0.tar.bz2 --no-check-certificate tar xf boost_1_60_0.tar.bz2?r=&ts=1479114685&use_mirror=ncu cd boost_1_60_0 ./bootstrap.sh ./b2 stage threading=multi link=shared ./b2 install threading=multi link=shared
2:下载mysql源码包
bash
复制代码
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.21-el7-x86_64.tar.gz
3:准备安装mysql
(1)、 卸载系统自带的mariadb*
perl
复制代码
rpm -qa|grep mariadb
查找出结果:mariadb-libs-5.5.60-1.el7_5.x86_64
csharp
复制代码
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64 #删除此或者使用yum命令删除 yum -y remove mariadb* boost-*
(2):创建mysql用户及用户组
bash
复制代码
cat /etc/group | grep mysql # 查看是否有mysql用户组 cat /etc/passwd | grep mysql # 查看是否有mysql密码
arduino
复制代码
useradd -M -s /sbin/nologin mysql //创建名为mysq的用户并且没有登录权限 (不指定 -g默认创建了同名mysql的用户组)
(3):删除系统原有的my.cnf(如果存在)
bash
复制代码
rm -f /etc/my.cnf rpm -qa | grep mysql
4:安装mysql
我下载的版本是免编译版本,因此和二进制编译安装包略有不同。
bash
复制代码
# 解压到 /usr/local/mysql/ (即安装目录) cd /mydata mkdir -p /usr/local/mysql tar -zxvf mysql-8.0.21-el7-x86_64.tar.gz //解压 mv /mydata/ mysql-8.0.21-el7-x86_64.tar.gz/* /usr/local/mysql/ //移动到安装目录
创建如下目录
perl
复制代码
mkdir /usr/local/mysql/database (数据库目录) mkdir /usr/local/mysql/log (数据库日志相关目录) mkdir /usr/local/mysql/log/binlog (二进制日志目录) mkdir /usr/local/mysql/log/tmp (临时文件存放目录) touch /usr/local/mysql/log/mysqld.log (安装日志文档) chmod -R 777 /usr/local/mysql/log/
改变mysql的属组
bash
复制代码
chown -R mysql:mysql /usr/local/mysql/
或者下面两句
bash
复制代码
chown -R mysql /usr/local/mysql/ chgrp -R mysql /usr/local/mysql/
执行安装
perl
复制代码
cd /usr/local/mysql /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/database/ --log-error=/usr/local/mysql/log/mysqld.log
此版本采用mysql_install_db 进行安装,不再使用cmake 编译安装\
ini
复制代码
/usr/local/mysql/bin/mysql_install_db # 安装命令 --initialize # 生成默认密码 --user=mysql # 指定mysql用户 --basedir=/usr/local/mysql/ # 安装目录 --datadir=/usr/local/mysql/database/ # 数据库目录 --log-error=/usr/local/mysql/log/mysqld.log # 指定日志文件,安装过程中数据库生成的初始密码就会保存到此文件中,如果不指定,生成的初始密码就是现实到安装屏幕上(建议指定)出现: # 执行上面的命令后,什么都没有出现,是因为我们指定了 /usr/local/mysql/data/mysqld.log,安装过程都记得到此文件了,因此就不在前台显示了。
查看mysqld.log文件:
less
复制代码
cat /usr/local/mysql/log/mysqld.log [root@iZuf60ynur81p6k0ysvtneZ mysql]# cat /usr/local/mysql/log/mysqld.log 2020-10-14T05:41:57.620731Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release. 2020-10-14T05:41:57.620859Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.21) initializing of server in progress as process 1352 2020-10-14T05:41:57.829126Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2020-10-14T05:42:00.795030Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2020-10-14T05:42:03.388874Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: SbBtsQla%0oY
日志显示我们安装成功:初始密码为:SbBtsQla%0oY
5:创建mysql配置文件my.cnf
ini
复制代码
vim /etc/my.cnf # ==============粘贴内容 start =============== [client] port=3306 default-character-set=utf8 [mysqld] port=3306 basedir=/usr/local/mysql datadir=/usr/local/mysql/database user=mysql default-storage-engine=INNODB character-set-server=utf8 [mysqld_safe] log-error=/usr/local/mysql/log/mysqld.log # ============ 粘贴内容 end ============ //设置此文件可执行权限 # chmod 644 /etc/my.cnf
6:启动并添加到环境变量
(1):启动mysql
shell
复制代码
#创建驱动文件 # cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
shell
复制代码
#修改变量 # vim /etc/init.d/mysqld
大约46行 ,给以下两个变量赋值
ini
复制代码
basedir=/usr/local/mysql datadir=/usr/local/mysql/database
bash
复制代码
chmod +x /etc/init.d/mysqld service mysqld start //启动
(2):添加到环境变量
添加到环境变量
bash
复制代码
vim /etc/profile
在此文件最后添加如下内容:
bash
复制代码
# MYSQL export PATH="$PATH:/usr/local/mysql/bin"
// 立即生效
bash
复制代码
source /etc/profile
// 输出环境变量
bash
复制代码
echo $PATH
7:更改默认密码
//修改密码
sql
复制代码
[root@qinser mydata]# mysql -u root -p Enter password: <------这里输入上面的初始密码(默认密码在安装的时候我们已经从mysqld.log中获取) mysql> alter user 'root'@'localhost' identified by '123456'; mysql> flush privileges; // 使用flush privileges在插入之后刷新系统权限相关表 Query OK, 0 rows affected (0.00 sec)
OK 新密码设置成功
8:设置开机启动
方法一:(推荐)
csharp
复制代码
chkconfig --add mysqld //加入系统中,可以是使用 systemctl status mysqld.service 命令了 chkconfig mysqld on //开机自启动
方法二:
csharp
复制代码
[root@VMTest mysql]# chkconfig --level 35 mysqld on [root@VMTest mysql]# chkconfig --list mysqld [root@VMTest mysql]# chkconfig --add mysqld [root@VMTest mysql]# chkconfig --list mysqld [root@VMTest mysql]# service mysqld status
至此,centos编译安装mysql8完成。
有好的建议,请在下方输入你的评论。
欢迎访问个人博客 guanchao.site
欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”