MySQL5.7.18源码编译安装笔记【Ubuntu篇】

来源:互联网 发布:js解析二维码图片 编辑:程序博客网 时间:2024/06/03 03:52

①安装依赖

     源码编译安装需要若干Linux系统环境依赖,详细参考https://dev.mysql.com/doc/refman/5.7/en/source-installation.html。就Ubuntu16.04LTS而言,执行以下安装命令就OK了(如果有其他缺失的依赖cmake的时候会检测出来甚至会打印出具体的apt和yum包名额外再执行一下安装即可)。

apt install cmake bison libncurses5-dev

②下载源码

     源码分带boost版的和不带boost版的。为了方便就直接下载带boost版的。

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.18.tar.gztar -xzv -f mysql-boost-5.7.18.tar.gz

③编译安装

     指定cmake选项,详细参考https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html。比较重要的选项包括安装目录、数据目录和boost目录。这一步比较漫长,视机器情况可能几十分钟不等吧。我的神船笔记本的风扇开始嗷嗷叫了。可以放着去干其他事情了。

cd mysql-5.7.18/cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_BOOST=boostmake && make install

④初始配置

     详细参考https://dev.mysql.com/doc/refman/5.7/en/installing-source-distribution.html。

     添加mysql用户组和文件管理。

groupadd mysqluseradd -g mysql mysqlmkdir /usr/local/mysql/datachown -R mysql /usr/local/mysqlchgrp -R mysql /usr/local/mysql

     初始化MySQL安装。

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

     这一过程的最后一行打印输出了root账户的初始密码(真的好随机狗眼已瞎)“ [Note] A temporary password is generated for root@localhost:(+:rGtOj8><<”。这个密码很重要要记下来之后连接MySQL的时候要用到!也可以使用“ --initialize-insecure ”不生成初始密码。需要的话再生成SSL。

/usr/local/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

     自建一个简单的配置文件。

vim /etc/my.cnf[client]socket = /tmp/mysql.sock[mysqld]socket = /tmp/mysql.sockbasedir = /usr/local/mysqldatadir = /usr/local/mysql/data

⑤开启服务

     详细参考https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html。

     设置mysqld服务。

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldchmod +x /etc/init.d/mysqldupdate-rc.d mysqld defaultsservice mysqld start

     设置mysql符号连接。

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

     连接mysql修改密码。

mysql -uroot -p'(+:rGtOj8><<'mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '1024';

     因为是本地自己玩,不考虑环境安全,修改一下配置文件([client]),设置root直接登录和外部连接。

vim /etc/my.cnf[client]user = rootpassword = 1024port = 3306socket = /tmp/mysql.sockroot@ubuntu:~/mysql-5.7.18# mysqlWelcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 6Server version: 5.7.18 Source distributionCopyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> UPDATE `mysql`.`user` SET `Host` = '%' WHERE `User` = 'root';Query OK, 1 row affected (0.04 sec)Rows matched: 1  Changed: 1  Warnings: 0mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.00 sec)mysql> 

原创粉丝点击