5、MySQL源码安装(centos7.5)
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-devel
5.2 创建关键目录
mkdir /usr/local/mysql
mkdir /usr/local/mysql/mydata
mkdir /usr/local/mysql/conf
useradd mysql
chown -R mysql:mysql /usr/local/mysql*
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目录
Socket:
为了简化本地连接MySQL,提供一种封装形式的TCP/IP协议。
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
++++++++++++++++++++++++++++++++++++++++++++++
5.4 编译安装:
make && make install
5.5 初始化数据(建库)
-----------------------------------
一套完整的数据库管理系统的基本结构
(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