首先需要准备好相应的软件
可以在网上选择下载
wget http://dev.mysql.com/Downloads/MySQL-5.7/mysql-5.7.12.tar.gz
wget
https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz/download
#如果boots软件包无法下载建议使用win系统下载
卸载之前的mysql依赖软件
安装mysql安装软件
yum -y remove mysql-* boost-*
yum -y install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl cmake yum -y install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl cmake
rpm -ivh /media/cdrom/Packages/ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
先对boot压缩包解压到当前路径
tar -zxvf boost_1_59_0.tar.gz
移动解压的boots包 到指定路径
mv boost_1_59_0 /usr/local/boost/
创建一个mysql程序用户
useradd -r -M -s /sbin/nologin mysql
对mysql压缩包解压到指定路径
tar zxvf mysql-5.7.12.tar.gz -C /usr/src/
然后cd到该压缩包里 进行服务优化
Cmake . 需要什么服务就添加在这里添加该该服务 我在这里添加了几种必要的服务
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql [MySQL安装的根目录]
-DMYSQL_DATADIR=/mydata/mysql/data [MySQL数据库文件存放目录]
-DDEFAULT_CHARSET=utf8 [设置默认字符集为utf8]
-DDEFAULT_COLLATION=utf8_general_ci [设置默认字符校对]
-DMYSQL_TCP_PORT=3306 [MySQL的监听端口]
-DMYSQL_USER=mysql [MySQL用户名]
-DWITH_MYISAM_STORAGE_ENGINE=1 [安装MySQL的myisam数据库引擎]
-DWITH_INNOBASE_STORAGE_ENGINE=1 [安装MySQL的innodb数据库引擎]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 [安装MySQL的archive数据库引擎]
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 [安装MySQL的blackhole数据库引擎]
-DWITH_MEMORY_STORAGE_ENGINE=1 [安装MySQL的memory数据库引擎]
-DENABLE_DOWNLOADS=1 [编译时允许自主下载相关文件]
-DDOWNLOAD_BOOST=1 [允许下载BOOST]
-DWITH_BOOST=/usr/local/boost [指定系统中存在的BOOST]
-DSYSCONFDIR=/etc [MySQL配置文件所在目录]
-DWITH_READLINE=1 [MySQL的readline library]
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock [MySQL的通讯目录]
-DENABLED_LOCAL_INFILE=1 [启用加载本地数据]
-DWITH_PARTITION_STORAGE_ENGINE=1 [启动mysql的分区存储结构]
-DEXTRA_CHARSETS=all [使MySQL支持所有的扩展字符]
-DWITH_DEBUG=0 [禁用调试模式]
-DMYSQL_MAINTAINER_MODE=0 [维护者特定的开发环境]
-DWITH_SSL:STRING=bundled [通讯时支持ssl协议]
-DWITH_ZLIB:STRING=bundled [允许使用zlib library]
查看cpu内核数
cat /proc/cpuinfo | grep processor | wc -l
编译安装
#在编译安装失败的情况下 要删除CMAKE的缓存
#rm -rf /usr/src/mysql-5.7.12/CMakeCache.txt
Make -j 4
Make install
查看是否安装成功
ls /usr/local/mysql
bin COPYING data docs include lib logs man mysql-test README share support-files
更改程序用户的权限
编辑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:是否覆盖"/etc/my.cnf"? y
cp /usr/src/mysql-5.7.12/support-files/mysql.server /etc/init.d/
chmod +x /etc/init.d/mysql.server
对mysql服务做启停优化
Vi /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 ##此配置必须关闭,不然mysql连接文件mysql.sock文件会默认生成在以下位置
[Install]
WantedBy=multi-user.target
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
注解:
--initialize-insecure ##禁用mysql的密码策略(密码复杂性等),--initializeaize是开启密码策略,自动生成密码在mysqld.log文件中
--user=mysql ##运行的账户
--basedir=/usr/local/mysql ##mysql的安装位置
--datadir=/usr/local/mysql/data ##mysql数据库服务数据的物理存放路径
对mysql服务进行进行文件配置
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
END
创建一个mysql日志文件目录 对该下的文件进行权限更改
mkdir /usr/local/mysql/logs
chown mysql:mysql /usr/local/mysql/logs/
启动mysql服务
systemctl start mysqld
systemctl enable mysqld
查看mysqld服务端口号
netstat -anpt | grep 3306
Mysql 登录 进行密码设置
alter user 'root'@'localhost' identified by '666666';
[root@liqi mysql-5.7.12]# mysql -uroot -p666666
只要能登录进去说明就已经搭建完成