CentOS7.3源码编译MYSQL5.7

一,准备编译环境

[root@baihu src]# yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
[root@baihu src]# yum -y install ncurses-devel git gcc-c++ cmake
[root@baihu src]# yum -y install  bison bison-devel libaio-devel

每一个都是必须的,缺少任何一个后面将会发生报错,务必准备好

Complete!

二,下载软件包

官网 https://dev.mysql.com/downloads/mysql/
选择 source code
由于RedHat未找到源码包所以选择GenericLinux包
由于Redhat未找到源码包所以选择GenericLinux包

三,导入源码包

解压tar xf mysql-boost-5.7.26.tar.gz

[root@baihu src]cd mysql-5.7.26/
[root@baihu mysql-5.7.26]# ls
boost           cmd-line-utils   Docs                 libbinlogevents      man         plugin   source_downloads  support-files  win
BUILD           config.h.cmake   Doxyfile-perfschema  libbinlogstandalone  mysql-test  rapid    sql               testclients    zlib
client          configure.cmake  extra                libmysql             mysys       README   sql-common        unittest
cmake           COPYING          include              libmysqld            mysys_ssl   regex    storage           VERSION
CMakeLists.txt  dbug             INSTALL              libservices          packaging   scripts  strings           vio
[root@baihu mysql-5.7.26]#
[root@baihu mysql-5.7.26]# mkdir /usr/local/boost
[root@baihu mysql-5.7.26]#cp -R boost/* /usr/local/boost/*

四,编译并安装

创建配置文件夹

[root@baihu mysql-5.7.26]#mkdir configure
[root@baihu mysql-5.7.26]#cd configure

然后cmake

[root@baihu configure]#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \
-DMYSQL_DATADIR=/mysql_data \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci  \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_USER=mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \ 
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ 
-DWITH_ARCHIVE_STORAGE_ENGINE=1  \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1   \
-DWITH_MEMORY_STORAGE_ENGINE=1  \
-DENABLE_DOWNLOADS=1  \
-DDOWNLOAD_BOOST=0  \
-DWITH_BOOST=/usr/local/boost  \

出现以下结果代表完成

-- Configuring done
-- Generating done
-- Build files have been written to: /src/mysql-5.7.26/configure

接下来就是make
耐心等待

[root@baihu configure]# make
...
[100%] Building CXX object sql/CMakeFiles/udf_example.dir/udf_example.cc.o
Linking CXX shared module udf_example.so
[100%] Built target udf_example
Scanning dependencies of target my_safe_process
[100%] Building CXX object mysql-test/lib/My/SafeProcess/CMakeFiles/my_safe_process.dir/safe_process.cc.o
Linking CXX executable my_safe_process
[100%] Built target my_safe_process
[root@lbaihu configure]# 

make install

[root@baihu configure]# make install
...
-- Installing: /usr/local/mysql/support-files/magic
-- Installing: /usr/local/mysql/share/aclocal/mysql.m4
-- Installing: /usr/local/mysql/support-files/mysql.server
[root@baihu configure]# 

五,初始化数据库

1,添加mysql用户:

[root@baihu configure]# useradd -s /sbin/nologin mysql

2,新建数据库文件夹及日志文件夹,并更改用户为mysql:

[root@baihu configure]# mkdir /mysql_data
[root@baihu configure]# mkdir /var/mysql/log
[root@baihu configure]# chown -R mysql:mysql /mysql_data/
[root@baihu configure]# chown -R mysql:mysql /var/mysql/log
[root@baihu configure]# touch /var/mysql/log/error.log
[root@baihu configure]# chmod -R 777 /var/mysql/log
[root@baihu configure]# mkdir /var/lib/mysql
[root@baihu configure]# touch /var/lib/mysql/mysql.sock
[root@baihu configure]# chmod -R 777 /var/lib/mysql/
[root@baihu configure]# chown -R mysql:mysql /usr/local/mysql

3,修改配置文件

[client]
socket=/var/lib/mysql/mysql.sock
[mysqld]

#datadir=/var/lib/mysql
datadir=/mysql_data
port=3306
basedir=/usr/local/mysql/
..
#log-error=/var/log/mariadb/mariadb.log
log_error=/var/mysql/log/error.log
...
explicit_defaults_for_timestamp=true 

4,初始化数据库

[root@baihu configure]# /usr/local/mysql/bin/mysqld --initialize --user=mysql
cp /usr/local/mysql/share/english/errmsg.sys /var/mysql/share/errmsg.sys

5,添加快捷启动

 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

编辑

    vim /etc/init.d/mysqld
        basedir=/usr/local/mysql
        datadir=/mysql_data

启动数据库,创建开机启动

[root@baihu ~]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS! 
[root@baihu ~]# systemctl enable mysqld
mysqld.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig mysqld on

编辑变量

vim /root/.bash_profile

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

6,进入mysql

mysql -uroot -p

初始密码可以查看error.log

grep 'password' /var/mysql/log/error.log

如果无法直接进mysql可以尝试以下操作

mysql -uroot -h 127.0.0.1 -p
然后更改密码

alter user 'root'@'localhost' identified by '123';

或者

1.  vi /etc/my.cnf,在[mysqld]中添加
skip-grant-tables
例如:
[mysqld]
skip-grant-tables
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
2.  重启mysql
service mysql restart
3.  使用用户无密码登录
mysql -uroot -p (直接点击回车,密码为空)
4. 选择数据库
use mysql;
5. 修改root密码
update user set authentication_string=password('123456') where user='root';
6 .刷新权限
 flush privileges;
7 .退出
exit;
8 .删除第1部增加的配置信息
skip-grant-tables
9 .重启mysql
service mysql restart
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值