Linux系统MySQL5.7源码编译安装笔记【Ubuntu篇】

版权声明:本文为博主原创文章,转载敬请作出引用声明方便相互交流学习! https://blog.csdn.net/sweeper_freedoman/article/details/75268047

①安装依赖

     源码编译安装需要若干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.gz
tar -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=boost
make && make install

④初始配置

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

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

groupadd mysql
useradd -g mysql mysql
mkdir /usr/local/mysql/data
chown -R mysql /usr/local/mysql
chgrp -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.sock
basedir = /usr/local/mysql
datadir = /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/mysqld
chmod +x /etc/init.d/mysqld
update-rc.d mysqld defaults
service 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 = root
password = 1024
port = 3306
socket = /tmp/mysql.sock

root@ubuntu:~/mysql-5.7.18# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.18 Source distribution

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> 

CentOS系统的安装过程大同小异,参考:

https://blog.csdn.net/sweeper_freedoman/article/details/75352004

猜你喜欢

转载自blog.csdn.net/sweeper_freedoman/article/details/75268047
今日推荐