MySQL5.7源码安装

五、MySQL源码安装(centos7.5)html

5.1 下载软件
官方自带(boost版本mysql)
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz
tar xf mysql-boost-5.7.20.tar.gz
mv mysql-boost-5.7.20 mysql
安装依赖包
yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-develmysql

5.2 建立关键目录c++

mkdir /usr/local/mysql
mkdir /usr/local/mysql/mydata
mkdir /usr/local/mysql/conf
useradd mysql
chown -R mysql:mysql /usr/local/mysql*sql

5.3 cmake进行预编译:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/mydata  \
-DSYSCONFDIR=/usr/local/mysql/conf \
-DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0 \
-DWITH_SSL:STRING=bundled -DWITH_ZLIB:STRING=bundled \
-DWITH_SYSTEMD=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost数据库

++++++++++++++++++++++++++++++++++++++++++++
注意:
-DWITH_SYSTEMD=1        ------>是否支持systemd方式管理MySQL
-DDOWNLOAD_BOOST=1    ------>自动下载boost支持
-DWITH_BOOST=./boost    ------>本地boost目录vim

Socket: 
为了简化本地链接MySQL,提供一种封装形式的TCP/IP协议。
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock 
++++++++++++++++++++++++++++++++++++++++++++++centos

5.4 编译安装:socket

make &&  make installcentos7


5.5 初始化数据(建库)rest

-----------------------------------
一套完整的数据库管理系统的基本结构

(1)软件部分
   存放位置: /usr/local/mysql  

(2)数据部分
   《1》系统相关数据---->维持mysql数据库软件程序,正常运行的系统数据
   《2》用户数据------>和用户的应用程序有关的
-----------------------------------
(1) 初始化数据,初始化管理员的临时密码

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

(2)初始化数据,初始化管理员的密码为空

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

--------
注释:5.6初始化的区别
/usr/local/mysql/scripts/mysql_install_db  --user=mysql --datadir=/usr/local/mysql/mydata --basedir=/usr/local/mysql
--------

5.6 启动数据库
(1)书写默认配置文件
vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/mydata
socket=/tmp/mysql.sock
log_error=/var/log/mysql.log
user=mysql
[client]
socket=/tmp/mysql.sock
(2)
touch /var/log/mysql.log
chown -R mysql.mysql /var/log/mysql.log

(3)                   
cd  /usr/local/mysql/support-files
vim  mysql.server     
替换全部mysqld_safe  为 mysqld

(4)

./mysql.server start
netstat -lnp|grep 3306

5.7 原始sys-v管理启动

cp mysql.server /etc/init.d/mysqld

5.8 使用systemd管理mysql

vim /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

注意:将原来模式启动mysqld先关闭,而后再用systemd管理。

systemctl  start/stop/restart/status   mysqld