centos7-源码安装mysql5.7

时间:2022-09-22 13:28:17

                                    centos7源码安装5.7mysql

    源码安装mysql在生产环境上是很常用的,但是源码安装出的问题比较多,接下来我们来看看我们如何安装使用源码mysql。

   注:在安装源码时,为了避免不必要的麻烦。我们需要关掉selinux。

1、mysql编译安装

[root@node1 src]#wget  https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz
[root@node1 src]#yum install -y cmake gcc-c++ gcc ncurses-devel perl-Data-Dumper boost boost-doc boost-devel

##安装环境依赖包

[root@node1 src]# tar -xf mysql-boost-5.7.20.tar.gz[root@node1 src]# cd mysql-5.7.20/[root@node1 mysql-5.7.20]#useradd mysql  -s /sbin/nologin[root@node1 mysql-5.7.20]#mkdir -pv /usr/local/mysql/mydata[root@node1 mysql-5.7.20]#mkdir -pv /usr/local/mysql/conf[root@node1 mysql-5.7.20]#chown -R mysql:mysql /usr/local/mysql

注意小事项:

如果以前装过mariadbd的需要删除my.cnf文件

[root@node1 mysql-5.7.20]#rm -rf /etc/my.cnf

必须删除my.cnf,其为mariadb配置文件,于mysql有冲突

[root@node1 mysql-5.7.20]#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 [root@node1 mysql-5.7.20]#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客户端程序,都可以采用下面两个参数来自行指定要读取的配置文件路径:

我们新建我们的配置文件

[root@node1 mysql-5.7.20]# cat /etc/my.cnf[mysqld]datadir=/usr/local/mysql/mydata        ##这个目录要有mysql用户权限socket=/tmp/mysql.sock     ###让它生成在tmp目录下,其他目录也可以,但要给予权限,在tmp目录下我们就不需要,等下建个软连接就好。

3.设置添加到系统服务并设置开机启动

[root@node1 mysql-5.7.20]#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld[root@node1 mysql-5.7.20]#chmod +x /etc/init.d/mysqld[root@node1 mysql-5.7.20]#chkconfig --add mysqld[root@node1 mysql-5.7.20]#chkconfig mysqld on

4、将mysql添加到bash

[root@node1 mysql-5.7.20]#cp /usr/local/mysql/bin/mysql /usr/bin/mysql

5.我们初始化mysql

[root@node1 mysql-5.7.20]#/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/mydata

6、启动我们的mysql

[root@node1 mysql-5.7.20]# service mysqld startStarting MySQL.Logging to '/usr/local/mysql/mydata/node2.err'.Starting MySQL. SUCCESS![root@node1 mysql-5.7.20]# ln -s /tmp/mysql.sock /usr/local/mysql/mysql.sock    ###新建软连接,启动mysql以便我们能找到mysql.sock[root@node1 mysql-5.7.20]# service mysqld restartShutting down MySQL.. SUCCESS! Starting MySQL. SUCCESS![root@node1 mysql-5.7.20]# cat  /etc/my.cnf[mysqld]datadir=/usr/local/mysql/mydata      socket=/usr/local/mysql/mysql.sock       ###再修改我们的mysql.sock路径

我们发现可以启动成功

7、进入我们的数据库。

[root@node1 mysql-5.7.20]#mysqlLinux mysql 5.6: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

##发现会出错,但我们并不是我们的mysql密码,且我们也进不入安全模式。怎么办呢?

8、解决密码问题,进入数据库。

我们进入我们的配置文件添加skip-grant-tables,

[root@node1 mysql-5.7.20]# cat /etc/my.cnf[mysqld]datadir=/usr/local/mysql/mydatasocket=/tmp/mysql.sockskip-grant-tables[root@node1 mydata]# service mysqld restartShutting down MySQL. SUCCESS! Starting MySQL. SUCCESS!

9、测试,修改密码。

[root@node1 mysql-5.7.20]# mysqlWelcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 4Server version: 5.7.20 Source distributionCopyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.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 目录也有我们自动生成,创建的目录要给权限,密码修改等问题,需要我们注意,所以我们把以上的方面做好,我们就可以成功的完成源码安装。

本文出自 “我的运维” 博客,请务必保留此出处http://xiaozhagn.blog.51cto.com/13264135/1979540