一,准备编译环境
[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包
三,导入源码包
解压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