您现在的位置是:自如初>LinuxLinux

全网最细且手把手一起学CentOS8.0源码编译安装LNMP环境之MySQL8源码安装(二)

夕阳何处寻 2019-10-07 21:22:31 Linux 1970人已围观

简介我使用的是CentOS8,其内置的gcc与cmake都是达到了安装mysql8.0.15以上版本的要求。但是在安装mysql8.0.17过程中报了很多错误,也解决了很多错误,但是最终仍旧有问题没有解决掉。因此,不断降低版本,而最后的错误仍旧一样。

三、源码安装mysql8.0.17

安装rpcsvc-proto-1.4.tar.gz依赖

cd /usr/local/src
wget https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz
tar -zxvf rpcsvc-proto-1.4.tar.gz
cd rpcsvc-proto-1.4
./configure
make && make install

3.1、准备个工作

卸载系统自带的mariadb数据库

#查看是否自带数据
rpm -qa|grep mariadb   


卸载自带数据库
yum -y remove mariadb* boost-*

检查是否存在mysql用户、用户组,不存在,创建

cat /etc/group  | grep mysql
cat /etc/passwd | grep mysql

创建mysql用户组
groupadd mysql

创建mysql用户并禁止登陆
useradd -g mysql mysql -M -s /sbin/nologin/

若存在,删除my.cnf mysql

rm -rf /etc/my.cnf
rpm -qa | grep mysql

3.2、安装依赖

yum -y install cmake ncurses-devel

3.3、安装mysql8.0.17

cd /sur/local/src
tar -zxvf mysql-boost-8.0.17.tar.gz
cd mysql-boost-8.0.17
mkdir build
cd build

cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DSYSCONFDIR=/etc \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/src/mysql-8.0.17/boost \
-DDOWNLOAD_BOOST=1 

make && make install
----------编译安装过程时间很长,需要耐心等待~~~------

3.4、修改mysql目录权限

修改所属组与用户
chown -R mysql:mysql /usr/local/mysql
修改权限
chmod -R 755 /usr/local/mysql

3.5、初始化mysql

cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --character-set-server=utf8

3.6、安装ssl

/usr/local/mysql/bin/mysql_ssl_rsa_setup

#此处若报缺少依赖,根据提示安装依赖包就就行了

3.7、启动mysql

/usr/local/mysql/bin/mysqld_safe --user=mysql &
【注】:用此命令开启后需要使用新的窗口连接数据库

3.8、连接mysql

第一步:连接

cd /usr/local/mysql/bin
./mysql -uroot -p
注意:不知什么原因,写完整的路径访问不到。p后面直接写上密码不可以。

第二步:修改密码

alter user 'root'@'localhost' identified by "123456";
【注】生产环境中密码千万不要随意设置成这样

3.9、设置mysql远程登陆

添加远程登陆用户
create user root@'%' identified by '123456';

为远程用户分配权限
grant all privileges on *.* to root@'%';

flush privileges;

【注】生产环境中千万不要把所有权限都分配给远程登陆用户

查看当前用户,host为 % 的用户表示远程登陆用户
select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |

3.10、在防火墙中开启3306远程访问,这样就能通过navicat等工具连接mysql

查看是否开放3306端口
firewall-cmd --list-ports

开启防火墙
systemctl start firewalld.service 

开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
刷新
firewall-cmd --reload

关闭防火墙
systemctl stop firewalld.service 
禁止防火墙开机自启
systemctl disable firewalld.service

3.11、设置环境变量

vim /etc/profile

# 添加内容
export PATH=$PATH:/usr/local/mysql/bin

# 刷新
source /etc/profile

3.12、设置开机自启

1)创建配置文件

vim /usr/lib/systemd/system/mysql.service

注意:这里可以不用添加.service后缀,添加了也无妨,不影响

2)添加如下内容

[Unit]
Description=MySQL Server(8.0)
Documentation=main:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld
LimitNOFILE=5000

3)设置开机自启

systemctl enable mysql      开机自启

systemctl disable mysql     取消开机自启

4)启动mysql服务

systemctl start mysql       启动mysql服务
systemctl restart mysql     重启mysql服务
systemctl status mysql      查询mysql状态

作者语:CentOS7已经发布许久了,而如今CentOS8也已经发布,而网上多数教程所使用的命令依旧停留在CentOS6时代,这显然是不合理的。而且,云服务商如腾讯云、阿里云等已经上到了CentOS7了,作为开发人员,更应该与时俱进,使用新的命令。作为企业级服务可能不会立马使用新版本,但是作为开发人员来说,学习新东西是一种必然,竟然新版已经发布,请使用新命令,拒绝老命令。


更新时间 2019年10月26日

我是夕阳何处寻,期待和优秀的你一起同行!

 

夕阳何处寻

2019年10月7


很赞哦!(10)

文章评论

登录 注册

自如初--时间轴

站名:自如初

独白:向前走!向前走!

邮箱:457969743@qq.com

站点信息