实验准备:
一台centos
boost_1_59_0.tar.gz
mysql-5.7.12.tar.gz
实验过程:
先看看这台机子以前装没装mysql
yum -y remove mysql-* boost-*
安装依赖包
yum -y install gcc gcc-c++ ncurses bison libgcrypt perl cmake ncurses-devel
解包
tar -zxvf boost_1_59_0.tar.gz
移动
mv boost_1_59_0 /usr/local/boost/
添加账户及组
useradd -r -g mysql mysql
groupadd mysql
解包
tar zxvf mysql-5.7.12.tar.gz -C /usr/src/
进入到解压路径,准备编译
cd /usr/src/mysql-5.7.12/
要注意多次进行cmake时,需要删除CMAKE的缓存,rm -rf /usr/src/mysql-5.7.12/CMakeCache.txt
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost -DSYSCONFDIR=/etc
编译安装
#查看系统内核数,进行多和编译
make -j `cat /proc/cpuinfo | grep processor| wc -l`
make install
ls /usr/local/mysql
MySQL优化:
chown -R mysql:mysql /usr/local/mysql
cp /usr/src/mysql-5.7.12/support-files/my-default.cnf /etc/my.cnf
cp /usr/src/mysql-5.7.12/support-files/mysql.server /etc/init.d/
chmod +x /etc/init.d/mysql.server
#编写脚本
cat <<END >>/usr/lib/systemd/system/mysqld.service
[Unit]
Description=mysqldapi
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/mysql/logs/mysqld.pid
ExecStart=/etc/init.d/mysql.server start
ExecReload=/etc/init.d/mysql.server restart
ExecStop=/etc/init.d/mysql.server stop
PrivateTmp=Flase
[Install]
WantedBy=multi-user.target
END
echo "export PATH=$PATH:/usr/local/mysql/bin/" >>/etc/profile
source /etc/profile
#初始化MySQL
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#修改主配置文件
cat <<END >/etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character_set_server=utf8
init_connect='SET NAMES utf8'
log-error=/usr/local/mysql/logs/mysqld.log
pid-file=/usr/local/mysql/logs/mysqld.pid
skip-name-resolve
END
mkdir /usr/local/mysql/logs
chown mysql:mysql /usr/local/mysql/logs/
systemctl enable mysqld --now
启动MySQL
登录测试
mysqladmin -uroot -p password
Enter 直接回车,因为初始没有密码
后面两个输入你要创建的密码
登录
mysql -uroot -p123123