在水一万 发表于 2018-10-7 09:58:27

centos7-源码安装mysql5.7

  centos7源码安装5.7mysql
  源码安装mysql在生产环境上是很常用的,但是源码安装出的问题比较多,接下来我们来看看我们如何安装使用源码mysql。
  注:在安装源码时,为了避免不必要的麻烦。我们需要关掉selinux。
  1、mysql编译安装
#wgethttps://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz  
#yum install -y cmake gcc-c++ gcc ncurses-devel perl-Data-Dumper boost boost-doc boost-devel
  ##安装环境依赖包
# tar -xf mysql-boost-5.7.20.tar.gz  
# cd mysql-5.7.20/
  
#useradd mysql-s /sbin/nologin
  
#mkdir -pv /usr/local/mysql/mydata
  
#mkdir -pv /usr/local/mysql/conf
  
#chown -R mysql:mysql /usr/local/mysql
  注意小事项:
  如果以前装过mariadbd的需要删除my.cnf文件
#rm -rf /etc/my.cnf  必须删除my.cnf,其为mariadb配置文件,于mysql有冲突
#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 \
  
-DDOWNLOAD_BOOST=1 \
  
-DWITH_BOOST=./boost            #$因为5.7版本所以需要编译boost
  
#make && make install
  2.新建配置my.cnf配置文件,不新建会起不来
  接下来我们看看mysql的启动路径顺序:
  My.cnf启动顺序:
  /etc/my.cnf
  /etc/mysql/my.cnf
  /usr/local/mysql/etc/my.cnf
  ~/.my.cnf
  其他自定义路径下的my.cnf,例如:/data/mysql/yejr_3306/my.cnf
  不管是mysqld服务器端程序,还是mysql客户端程序,都可以采用下面两个参数来自行指定要读取的配置文件路径:
  我们新建我们的配置文件
# cat /etc/my.cnf  

  
datadir=/usr/local/mysql/mydata      ##这个目录要有mysql用户权限
  
socket=/tmp/mysql.sock   ###让它生成在tmp目录下,其他目录也可以,但要给予权限,在tmp目录下我们就不需要,等下建个软连接就好。
  3.设置添加到系统服务并设置开机启动
#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld  
#chmod +x /etc/init.d/mysqld
  
#chkconfig --add mysqld
  
#chkconfig mysqld on
  4、将mysql添加到bash
#cp /usr/local/mysql/bin/mysql /usr/bin/mysql  5.我们初始化mysql
#/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/mydata  6、启动我们的mysql
# service mysqld start  
Starting MySQL.Logging to '/usr/local/mysql/mydata/node2.err'.
  
Starting MySQL. SUCCESS!
  
# ln -s /tmp/mysql.sock /usr/local/mysql/mysql.sock    ###新建软连接,启动mysql以便我们能找到mysql.sock
  
# service mysqld restart
  
Shutting down MySQL.. SUCCESS!
  
Starting MySQL. SUCCESS!
  
# cat/etc/my.cnf
  

  
datadir=/usr/local/mysql/mydata
  
socket=/usr/local/mysql/mysql.sock       ###再修改我们的mysql.sock路径
  我们发现可以启动成功
  7、进入我们的数据库。
#mysql  
Linux mysql 5.6: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
  ##发现会出错,但我们并不是我们的mysql密码,且我们也进不入安全模式。怎么办呢?
  8、解决密码问题,进入数据库。
  我们进入我们的配置文件添加skip-grant-tables,
# cat /etc/my.cnf  

  
datadir=/usr/local/mysql/mydata
  
socket=/tmp/mysql.sock
  
skip-grant-tables
  
# service mysqld restart
  
Shutting down MySQL. SUCCESS!
  
Starting MySQL. SUCCESS!
  9、测试,修改密码。
# mysql  
Welcome to the MySQL monitor.Commands end with ; or \g.
  
Your MySQL connection id is 4
  
Server version: 5.7.20 Source distribution
  
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
  
Oracle is a registered trademark of Oracle Corporation and/or its
  
affiliates. Other names may be trademarks of their respective
  
owners.
  
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  
mysql>
  ##可以发现可以进入mysql了
mysql>update mysql.user set authentication_string=password('root') where user='root' ;  修改密码,需要把skip-grant-tables删掉,然后重启服务,以root密码登陆,然后设置我们的密码:
mysql>set password =password('123456');  这样以后就可以愉快的玩耍了。
  总结:我们发现我们在源码安装时遇到的问题非常多,像配置文件要我们新建,mysql.sock 目录也有我们自动生成,创建的目录要给权限,密码修改等问题,需要我们注意,所以我们把以上的方面做好,我们就可以成功的完成源码安装。


页: [1]
查看完整版本: centos7-源码安装mysql5.7