CentOS7下源代码安装MySQL8.0.11

以下为本人安装经验,不是一下子可以完成的,也是搞了半天才出来的

部分内容来自网络,一切仅供参考,有帮助就好

        资源网址


#官网源码编译安装文档:https://dev.mysql.com/doc/refman/8.0/en/source-installation.html

#系统安装条件官方文档说明:https://dev.mysql.com/doc/refman/8.0/en/source-installation.html

#源码tar包:https://dev.mysql.com/downloads/mysql/            (在选择操作系统下拉列表最后就是源码包Source Code)

Generic Linux (Architecture Independent), Compressed TAR Archive     8.0.11     75.7M     
Download
(mysql-8.0.11.tar.gz)     MD5: 38d5a5c1a1eeed1129fec3a999aa5efd

#Boost官网:https://www.boost.org/

        前期处理


首先检查是否已经安装过mysql:
[root@localhost ~]# rpm -qa | grep mysql
有的话就卸载掉以前安装的mysql:
[root@localhost ~]# rpm -e --nodeps xxx(xxx是搜索结果)
并删除所有的相关文件:
/etc/my.cnf

        依赖库说明

    1> cmake
MySQL使用cmake跨平台工具预编译源码,用于设置mysql的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等。安装最新版本即可。

    2> make
mysql源代码是由C和C++语言编写,在Linux下使用make对源码进行编译和构建,要求必须安装make 3.75或以上版本

    3> gcc
GCC是Linux下的C语言编译工具,mysql源码编译完全由C和C++编写,要求必须安装GCC4.4.6或以上版本

    4> Boost   https://www.boost.org/
mysql源码中用到了C++的Boost库,要求必须安装boost1.66.0或以上版本

    5> bison
Linux下C/C++语法分析器

    6> ncurses
字符终端处理库

        开始安装工作


    1.安装依赖
[root@localhost ~]# yum -y install wget  cmake gcc gcc-c++ ncurses  ncurses-devel  libaio-devel  openssl openssl-devel

    2.创建mysql用户
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql -s /bin/false mysql

    3.创建安装目录和数据目录
[root@localhost ~]# mkdir -p /usr/local/mysql
[root@localhost ~]# mkdir -p /usr/local/mysql/data

    4.解压相关tar包
[root@localhost opt]# md5sum mysql-8.0.11.tar.gz #使用md5sum命令来检查是否为原版
37664399c91021abe070faa700ecd0ed mysql-8.0.11.tar.gz

[root@localhost opt]# tar -zxvf mysql-8.0.11.tar.gz
[root@localhost opt]# tar -zxvf mysql-boost-8.0.11.tar.gz -C /usr/local #解压从官网下载的boost

    5.配置mysql预编译参数
进入opt下的MySQL源码解压目录执行:

[root@localhost mysql-8.0.11]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWTH_READLINE=1 -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=/usr/local/boost_1_66_0

[root@localhost mysql-8.0.11]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWTH_READLINE=1 -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=/usr/local/boost_1_66_0

注意:这里为一条语句

更多预编译配置参数请参考mysql官方文档说明:https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html

    -DCMAKE_INSTALL_PREFIX:安装路径
    -DMYSQL_DATADIR:数据存放目录
    -DWITH_BOOST:boost源码路径
    -DSYSCONFDIR:my.cnf配置文件目录
    -DEFAULT_CHARSET:数据库默认字符编码
    -DDEFAULT_COLLATION:默认排序规则
    -DENABLED_LOCAL_INFILE:允许从本文件导入数据
    -DEXTRA_CHARSETS:安装所有字符集

    6.开始编译安装
[root@localhost mysql-8.0.11]# make && make install
make 编译时间超长,完成标志为100%并且返回[root@localhost mysql-8.0.11]#
make install 安装,挺快的。完成标志为返回[root@localhost mysql-8.0.11]#

        安装完成,开始配置


    1.配置my.cnf文件
把已有的my.cnf更名为my.cnf.bak(如果有),然后新建
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
server-id=1
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
##请根据实际情况添加参数


    2.目录权限修改
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql/data
[root@localhost ~]# chmod 755 /usr/local/mysql -R
[root@localhost ~]# chmod 755 /usr/local/mysql/data -R

        进入/usr/local/mysql下

    1.初始化

[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data/

[root@localhost bin]# ./mysql_ssl_rsa_setup


    2.启动mysql
[root@localhost bin]# ./mysqld_safe --user=mysql

    3.修改账号密码
[root@localhost bin]# ./mysql  -uroot -p
mysql> alter user 'root'@'localhost' identified by "123456";

mysql> show databases;

    4.配置环境变量
[root@localhost bin]# vim /etc/profile
JAVA_HOME=/opt/soft/jdk1.8.0_171
PATH=/opt/soft/jdk1.8.0_171/bin:/usr/local/mysql/bin:$PATH
export JAVA_HOME PATH

[root@localhost bin]# source /etc/profile(使配置立即生效)


    5.配置防火墙
[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent(永久的)

[root@localhost ~]# firewall-cmd --reload


    6.添加远程账号(远程workbench可以访问)(hostip拥有访问权限的IP地址,%号说明一切IP都可以连接)(123456密码)
mysql> create user 'Orange'@'hostip' identified by '123456';
Query OK, 0 rows affected (0.08 sec)

mysql> grant all privileges on *.* to 'Orange'@'hostip';
Query OK, 0 rows affected (0.04 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)


    7.取消8.0新特性sha2(不取消则需要通过sha2加密连接,但许多数据库管理工具没这玩意,所以会报错)
mysql> use mysql
mysql> select user, host, plugin, authentication_string from user\G;

[root@localhost ~]# vim /etc/my.cnf
[mysqld]
server-id=1
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
default_authentication_plugin=mysql_native_password #加上这句话

mysql> INSERT INTO user (Host,User,Password) VALUES("%","Orange",PASSWORD("123456")); #增加新用户
 

猜你喜欢

转载自blog.csdn.net/OrangeHap/article/details/80220460
今日推荐