centos 7编译安装mysql 5.7.20
1. 下载mysql 5.7.20源码包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20.tar.gz
下载boost -----这个版本的MySQL要求boost的版本是1.59
wget --no-check-certificate http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
2. 安装mysql依赖包 yum install -y cmake bison bison-devel libaio-devel gcc gcc-c++ git ncurses-devel
3. 解压mysql源码包 tar -zxvf mysql-5.7.20.tar.gz 将boost的压缩包移动至解压后的源文件目录内: mv boost_1_65_1.tar.gz ./mysql-5.7.20
cd mysql-5.7.20 mkdir configure cd configure
4. 生成编译环境 cmake .. -DBUILD_CONFIG=mysql_release \ -DINSTALL_LAYOUT=STANDALONE \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DENABLE_DTRACE=OFF \ -DWITH_EMBEDDED_SERVER=OFF \ -DWITH_INNODB_MEMCACHED=ON \ -DWITH_SSL=bundled \ -DWITH_ZLIB=system \ -DWITH_PAM=ON \ -DCMAKE_INSTALL_PREFIX=/var/mysql/ \ -DINSTALL_PLUGINDIR="/var/mysql/lib/plugin" \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EDITLINE=bundled \ -DFEATURE_SET=community \ -DCOMPILATION_COMMENT="MySQL Server (GPL)" \ -DWITH_DEBUG=OFF \ -DWITH_BOOST=.. 如果编译出现错误,请先删除CMakeCache.txt后,再重新编译: rm -rf CMakeCache.txt 如果出现下面的提示就表示成功生成了编译环境: -- Configuring done -- Generating done
5. make && make install 编译,安装mysql------在进行cmake后可使用$?---输出0则生成编译环境没问题(其他数字则生成编译环境有问题),make和make install一样可以用$?来判断是否编译和安装成功
6. 开始初始化数据库 (一)、添加mysql用户: useradd -s /sbin/nologin mysql (二)、新建数据库文件夹及日志文件夹,并更改用户为mysql: mkdir /mysql_data mkdir /var/mysql/log chown -R mysql:mysql /mysql_data/ chown -R mysql:mysql /var/mysql/log (三)、修改配置文件 vim /etc/my.cnf 将[mysqld]项下的内容替换为: [mysqld] port=3306 datadir=/mysql_data log_error=/var/mysql/log/error.log basedir=/var/mysql/
(四)、初始化数据库: /var/mysql/bin/mysqld --initialize --user=mysql
ll /mysql_data/
ll /var/mysql/log/ -----查看是否生成文件
7. 配置启动文件和环境变量
(一)、配置启动文件 1. 从模板文件中复制启动文件: cp /var/mysql/support-files/mysql.server /etc/init.d/mysqld 2. 修改启动文件: vim /etc/init.d/mysqld 找到如下二行: basedir= datadir= 修改为: basedir=/var/mysql/ datadir=/mysql_data 3. 启动mysql: [root@localhost mysql]# /etc/init.d/mysqld start Starting MySQL. SUCCESS! 可以看到提示,已经成功启动。当然你也可以使用systemctl来启动MySQL,但执行后,不会有任何提示。 [root@localhost ~]# systemctl start mysqld 设置MySQL开机自动启动: [root@localhost ~]# systemctl enable mysqld mysqld.service is not a native service, redirecting to /sbin/chkconfig. Executing /sbin/chkconfig mysqld on ------如启动报如下错误
mkdir /var/log/mariadb---->touch /var/log/mariadb/mariadb.log ---->chown -R mysql.mysql /var/log/mariadb
![](https://images2018.cnblogs.com/blog/1015179/201807/1015179-20180716110655426-887939648.png)
配置MySQL环境变量: vim /root/.bash_profile 找到下面一行: PATH=$PATH:$HOME/bin 修改为: PATH=$PATH:$HOME/bin:/var/mysql/bin
source ~/.bash_profile -----为了不用绝对路劲登录mysql(source修改后立即生效)
8. 修改root用户登录mysql的初始密码 1. 查看root的初始密码 MySQL从5.7开始不支持安装后使用空密码进行登录,因此在这里需要先查询程序生成的临时密码: [root@www configure]# cat /var/mysql/log/error.log | grep 'A temporary' 2018-07-16T02:06:22.271664Z 1 [Note] A temporary password is generated for root@localhost: YA-o:Hr.w90a 最后一行冒号后面的部分YA-o:Hr.w90a就是初始密码。 2. 登录MySQL并修改初始密码: 使用初始密码登录MySQL: [root@localhost ~]# mysql -uroot -p Enter password: 登录后立即修改root密码: mysql> alter user 'root'@'localhost' identified by '密码'; Query OK, 0 rows affected (0.00 sec) 如不修改初始密码是无法使用mysql的.-----如下图