mysql 5.7.17 源码安装
----胡志诚
注意:mysql 5.7.17安装略不用于mysql 5.6
第一:需要指定boost
第二:初始化也不同了
1、环境
操作系统:centos 6.6 x64
数据库:mysql 5.7.17
mysql包:mysql-5.7.17.zip
boost包:boost_1_59_0.tar
2、操作系统配置:
系统依赖包:
1.yum install -y install gcc-c++ ncurses-devel cmake make perl
gcc autoconf automake zlib libxml libgcrypt libtool bison
3、安装cmake
安装cmake,从下载源码并编译安装
1.wget /files/v
2.8/cmake-2.8.10.2.tar.gz
2.tar -xzvf cmake-2.8.10.2.tar.gz
3.cd cmake-2.8.10.2
4../bootstrap
5.gmake
6.gmake install
4、安装解压boost包
cd /opt
tar –xvf boost_1_59_0.tar
cd boost_1_59_0
5、
6、设置MySQL用户和组
1.groupadd mysql
eradd -r -g mysql mysql
7、新建MySQL所需要的目录
新建mysql安装目录
1.mkdir -p /usr/local/mysql 新建mysql数据库数据文件目录
1.mkdir -p /data/mysqldb
10、编译安装
$cd mysql-5.7.17
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DMYSQL_DATADIR=/data/mysqldb -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1
-DWITH_BOOST=/usr/local/boost
注意事项:
从MySQL 5.7.5开始Boost库是必需的
重新编译时,需要清除旧的对象文件和缓存信息。
# make clean
# rm -f CMakeCache.txt
# rm -rf /etc/f
$make
$make install
11、修改文件权限:
[root@localhost mysql-5.6.24]# chown -R mysql:mysql /usr/local/mysql
[root@localhost mysql-5.6.24]# chown -R mysql:mysql /data
12、初始化数据库:
# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql
--datadir=/data/mysqldb
之前版本mysql_install_db是在mysql_basedir/script下,5.7放在了mysql_install_db/bin目录下,且已被废弃
"--initialize"会生成一个随机密码(~/.mysql_secret),而"--initialize-insecure"不会生成密码
--datadir目标目录下不能有数据文件
复制mysql服务启动脚本及加入PATH路径/etc/profile
export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH
复制mysql服务启动配置文件
1.cp /usr/local/mysql/support-files/f /etc/f
2.cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
3.chmod a+x /etc/init.d/mysqld
启动mysql服务并加入开机自启动(
service mysqld start
chkconfig --level 35 mysqld on
检查mysql服务是否启动
#netstat -tulnp | grep 3306
#mysql -u root -p
修改MySQL用户root的密码
mysql -uroot -p'+*N,SaflA1Gq'
5.7版本的MYSQL的用户表的密码字段变了,不再是password字段而是
authentication_string字段。
alter user 'root'@'localhost' identified by 'password';
以上的方法,在MySQL 5.7早期版本时,还是很好用的,但在MySQL 5.7.6以后的版本,最
后一点重置密码总是无法生效,会出来下面的错误。
1 E RROR 1819 (HY000): Your password does not satisfy the current policy requir
同时,无法进行其它的操作。
这是因为,自MySQL 5.7开始,密码存在有效期的概念,同时因为安全等级的问题,需要使用使用其它的方式进行设置。
另一个需要注意的点是,自 5.7.6开始废弃了password()函数,同时无法设置old_password=1,这真的是一件比较曲折的探索过程。
那么,先把MySQL 5.7.9版本以上的密码设置方法整理一下。
大部分和上面整理的内容相同,关键在第4步后,把authentication_string 里写入的值记一下(这是因为password()函数已废弃)
觉得好就赞赏下吧~。