设为首页 收藏本站
查看: 1085|回复: 0

[经验分享] centos7-源码安装mysql5.7

[复制链接]

尚未签到

发表于 2018-10-7 09:58:27 | 显示全部楼层 |阅读模式
  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 start  
Starting 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 restart
  
Shutting 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]#mysql  
Linux 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/mydata
  
socket=/tmp/mysql.sock
  
skip-grant-tables
  
[root@node1 mydata]# service mysqld restart
  
Shutting down MySQL. SUCCESS!
  
Starting MySQL. SUCCESS!
  9、测试,修改密码。
[root@node1 mysql-5.7.20]# 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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-614210-1-1.html 上篇帖子: MySQL事务隔离级别介绍 下篇帖子: LAMP架构介绍、MySQL,MariaDB介绍、MySQL安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表