官方下载地址: https://dev.mysql.com/downloads/mysql/
从mysql5.5起,mysql源码安装开始使用cmake
#mac 安装cmake
$ brew install cmake
#centos 安装cmake
$ yum install -y cmake
#相关编译选项
安装时路径相关的配置
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql # 安装路径
-DMYSQL_DATADIR=/usr/local/mysql/data # MySQL的数据目录
-DSYSCONFDIR=/etc # MySQL配置文件路径
存储引擎相关的配置
#若要明确指定编译某引擎,可使用类似如下的选项:
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDEFATED_STORAGE_ENGINE=1
#若要明确指定不编译某引擎,可使用类似如下的选项:
-DWITHOUT_<engine-name>_ENGINE=1
#如
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
其他配置项
-DMYSQL_TCP_PORT=3306
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DENABLED_LOCAL_INFILE=1
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_DEBUG=0
-DENABLED_PROFILING=1
-DWITH_READLINE=1
-DWITH_SSL=system
-DWITH_ZLIB=system
-DWITH_LIBWRAP=0
#编译安装
#解压缩
$ tar -zxvf mysql-boost-5.7.22.tar.gz
$ cd mysql-5.7.22
#编译安装
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DENABLE_DOWNLOADS=1 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=_mysql \
-DWITH_BOOST=/Users/tzhennan/Downloads/software/mysql-5.7.22/boost \
-DDOWNLOAD_BOOST=1
$ make
$ make install
#修改属组和属主
$ chown -R _mysql:_mysql /usr/local/mysql/
#初始化
$ cd /usr/local/mysql/
$ ./bin/mysqld --initialize
2018-06-04T03:24:37.762098Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-06-04T03:24:37.762730Z 1 [Note] A temporary password is generated for root@localhost: vWZI(Ptsl6Qp
注意上面生成的临时的随机的root用户密码:vWZI(Ptsl6Qp
初始化之后,你指定的数据目录里肯定生成了MySQL自用的表结构等文件
#启动/停止MySQL
$ support-files/mysql.server start/stop
#修改密码
$ bin/mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.22
...
mysql> SET PASSWORD = PASSWORD('root');
mysql> flush privileges;
mysql> quit;
从mysql5.5起,mysql源码安装开始使用cmake
#mac 安装cmake
$ brew install cmake
#centos 安装cmake
$ yum install -y cmake
#相关编译选项
安装时路径相关的配置
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql # 安装路径
-DMYSQL_DATADIR=/usr/local/mysql/data # MySQL的数据目录
-DSYSCONFDIR=/etc # MySQL配置文件路径
存储引擎相关的配置
#若要明确指定编译某引擎,可使用类似如下的选项:
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDEFATED_STORAGE_ENGINE=1
#若要明确指定不编译某引擎,可使用类似如下的选项:
-DWITHOUT_<engine-name>_ENGINE=1
#如
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
其他配置项
-DMYSQL_TCP_PORT=3306
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DENABLED_LOCAL_INFILE=1
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_DEBUG=0
-DENABLED_PROFILING=1
-DWITH_READLINE=1
-DWITH_SSL=system
-DWITH_ZLIB=system
-DWITH_LIBWRAP=0
#编译安装
#解压缩
$ tar -zxvf mysql-boost-5.7.22.tar.gz
$ cd mysql-5.7.22
#编译安装
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DENABLE_DOWNLOADS=1 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=_mysql \
-DWITH_BOOST=/Users/tzhennan/Downloads/software/mysql-5.7.22/boost \
-DDOWNLOAD_BOOST=1
$ make
$ make install
#修改属组和属主
$ chown -R _mysql:_mysql /usr/local/mysql/
#初始化
$ cd /usr/local/mysql/
$ ./bin/mysqld --initialize
2018-06-04T03:24:37.762098Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-06-04T03:24:37.762730Z 1 [Note] A temporary password is generated for root@localhost: vWZI(Ptsl6Qp
注意上面生成的临时的随机的root用户密码:vWZI(Ptsl6Qp
初始化之后,你指定的数据目录里肯定生成了MySQL自用的表结构等文件
#启动/停止MySQL
$ support-files/mysql.server start/stop
#修改密码
$ bin/mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.22
...
mysql> SET PASSWORD = PASSWORD('root');
mysql> flush privileges;
mysql> quit;