centos安装mysql源码包_centos7源码安装mysql数据库

之前介绍过通过yum方式安装mysql数据库,这种方法虽然简单,但安装时间较长,并有下载失败的风险。现在在家闲来无事,试试通过源码方式安装mysql数据库。如果有兴趣也可以对比一下两种方法的不同。我通过两种方法都是安装成功的,都可以试一下。传送门:centos7yum安装mysql数据库

环境:centos7

目标:通过源码安装方式安装mysql5.7数据库,并设置systemcel方式启动

0x001准备工作

首先卸载系统自带的mariadb数据库

rpm -qa|grep mariadb

rpm-e --nodeps mariadb*

添加用户(如果不添加用户,请把后面配置文件和初始化语句里的user相关语句去掉或省略)

useradd –s /sbin/nologin mysql

0x002下载、编译安装

1、安装依赖包和需要的工具

yum install -y vim wget gcc gcc-c++ cmake ncurses ncurses-devel bison

2、下载相应源码包

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.25.tar.gz

3、解压压缩包到/usr/local/mysql

如果没有此路径的需要自己创建一个

mkdir /usr/local/mysql

解压

tar –xvf mysql-boost-5.7.25.tar.gz -C /usr/local/mysql/

4、切换到解压之后的目录下,编译安装

cd /usr/local/mysql/mysql-5.7.25

cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost

make&& make install

5、安装好后的/usr/local/mysql目录结构

531f13edb91af1c3a6b05e31b064cf18.png

6、编辑vim /etc/my.cnf(如果没有则创建)

vim /etc/my.cnf

添加以下内容,此内容可根据自己的需求做一些修改

[client]

port= 3306socket= /tmp/mysql.sock

[mysqld]

port= 3306socket= /tmp/mysql.sock

user=mysql

basedir= /usr/local/mysql

datadir= /data/mysql/data

pid-file = /data/mysql/mysql.pid

log_error= /data/mysql/mysql-error.log

slow_query_log= 1long_query_time= 1slow_query_log_file= /data/mysql/mysql-slow.log

skip-external-locking

key_buffer_size=32M

max_allowed_packet=1024M

table_open_cache= 128sort_buffer_size=768K

net_buffer_length=8K

read_buffer_size=768K

read_rnd_buffer_size=512K

myisam_sort_buffer_size=8M

thread_cache_size= 16query_cache_size=16M

tmp_table_size=32M

performance_schema_max_table_instances= 1000explicit_defaults_for_timestamp= true#skip-networking

max_connections= 500max_connect_errors= 100open_files_limit= 65535log_bin=mysql-bin

binlog_format=mixed

server_id= 232expire_logs_days= 10early-plugin-load = ""default_storage_engine=InnoDB

innodb_file_per_table= 1innodb_buffer_pool_size=128M

innodb_log_file_size=32M

innodb_log_buffer_size=8M

innodb_flush_log_at_trx_commit= 1innodb_lock_wait_timeout= 50[mysqldump]

quick

max_allowed_packet=16M

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size=32M

sort_buffer_size=768K

read_buffer=2M

write_buffer= 2M

7、创建数据库数据目录并赋权

注:/data/mysql/data目录下一定要为空才行(需要与配置里的路径一致!)

mkdir –p /data/mysql/data

chown -R mysql:mysql /data/mysql

8、初始化mysql

cd /usr/local/mysql/bin

./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

注:到这一步很容易出问题,在初始化的时候一定要加上面的参数,而且在执行这一步操作前/data/mysql/data 这个目录必须是空的;在这里指定的basedir 和 datadir 目录必须要和/etc/my.cnf 配置的目录一直才行。

9、测试是否可运行再进行下一步

启动mysql服务

/usr/local/mysql/support-files/mysql.server start

这里暂时可以通过netstat -ntlp查看端口和服务是否起来了

进入usr/local/mysql/bin目录下

cd usr/local/mysql/bin

./mysql -uroot -p

发现mysql可以使用了

8e35e724ca650392cfef9bc8ae177425.png

0x003修改环境变量

修改环境变量的作用是可以在任意目录下打开mysql,而不再需要进入特定目录下打开

vim /etc/profile

新增一行

PATH=/usr/local/mysql/bin:$PATH

保存并退出

执行以下命令使之生效

source /etc/profile

0x004设置systemctl方式启动mysql服务

在/usr/lib/system/system/目录下创建一个启动文件,以.service结尾

touch /usr/lib/system/system/mysqld.service

vim/usr/lib/system/system/mysqld.service

添加如下内容

[Unit]

Description=mysql

SourcePath=/usr/local/mysql

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/mysql/support-files start

ExecStop=/usr/local/mysql/support-files stop

[Install]

WantedBy=multi-user.target

:wq保存并退出

为文件赋权

chmod -755 /usr/lib/system/system/mysqld.service

重新加载服务的配置文件

systemctl daemon-reload

使用systemctl命令启动服务

systemctl start mysqld.service

查看日志

journalctl –f

4557d82128e15b381cc303905b61068d.png

好了,到目前为止,我们可以通过systemctl方法启动mysql服务了,并且可以在任意目录打开mysql数据库

进入数据库

mysql –uroot –p

facc914893c951eb5d809cbb52e11369.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值