我这个人对于一次性操作的事情不太愿意去看官方文档,为什么?效率差!(当然我不是说看官方文档不好,其实还是建议大家都要根据官方文档进行学习,这样才会学的更系统更扎实)我这次安装mysql是为了学习携程的apollo配置中心,看完教学视频后还想自己操练一遍,不然觉得不踏实,感觉和没学差不多,所以还是要实践一下才能让自己感觉是真正学习过了也学会了。但linux是好几年前学的兄弟连视频全集,很多东西都记不清了,所以我还是决定自己网上查一下资料自己学习一下。本以为三两下功夫就能搞定的事情没想到花了我好几天。现在过年白天要带娃做家务,忙的没有时间,仅有晚上才能挤点属于自己的时间做些想做的事情,不然我连写这篇文章的时间都没有,好了,言归正传,下面就来说说我安装的曲折经历。
1.因为之前学会linux感觉yum安装是最方便的,所以准备试一试。但装的时候方法wget实在太慢,花了1个小时都没下完,决定放弃。
2.终于在网上找了篇相对靠谱的教程,决定试着装一下,大致内容是这样的:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1系统约定
安装文件下载目录:/data/software
Mysql目录安装位置:/usr/local/mysql
数据库保存位置:/data/mysql
日志保存位置:/data/log/mysql
2下载mysql
在官网:http://dev.mysql.com/downloads/mysql/ 中,选择以下版本的mysql下载:
(我下载的版本如标题)
执行如下命名:
#mkdir /data/software
#cd /data/software
--下载安装包
--建议:在windows上使用迅雷下载,速度很快(我的是1M/s),然后用工具(Xftp)上传到 /data/software目录下;
3解压压缩包到目标位置
#cd /data/software
--解压压缩包
#tar -xzvf /data/software/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
--移动并修改文件名
#mv /data/software/mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql
4创建数据仓库目录
--/data/mysql 数据仓库目录
# mkdir /data/mysql
#ls /data/
5新建mysql用户、组及目录
# ---新建一个msyql组
# useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql ---新建msyql用户禁止登录shell
6改变目录属有者
#cd /usr/local/mysql
#pwd
#chown -R mysql .
#chgrp -R mysql .
#chown -R mysql /data/mysql
7配置参数
# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
此处需要注意记录生成的临时密码,如上文结尾处的:YLi>7ecpe;YP
#bin/mysql_ssl_rsa_setup --datadir=/data/mysql
8修改系统配置文件
#cd /usr/local/mysql/support-files
# cp my-default.cnf /etc/my.cnf(这步我没有执行,因为查了相关资料发现我安装的版本不需要my.cnf也可以正常使用)
# cp mysql.server /etc/init.d/mysql
# vim /etc/init.d/mysql
修改以下内容:
basedir=/usr/local/mysql
datadir=/data/mysql
9启动mysql
# /etc/init.d/mysql start
--登陆
# mysql -hlocalhost -uroot -p
--如果出现:-bash: mysql: command not found
--就执行: # ln -s /usr/local/mysql/bin/mysql /usr/bin --没有出现就不用执行
--输入第6步生成的临时密码
--修改密码
mysql> set password=password('root');(8.0.19版本应为set password='123456';)
--设置root账户的host地址(修改了才可以远程连接)
mysql>grant all privileges on *.* to 'root'@'%' identified by 'root';
(8.0.19版本应为ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;)
mysql>flush privileges;
--查看表
mysql> use mysql;
mysql> select host,user from user;
--这里就可以使用远程连接测试了;
如提示不能成功连接,可能需要添加需要监听的端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
(这个只是允许一次,不希望每次都设置需要改成
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
3.以上红色的字体都是遇到的坑,哎,还没完
4.因为之前需要执行ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’; 我一看这个localhost肯定要改,于是改成了自己Linux的ip,192.168.130.130,于是在使用sqlyog连接的时候就输入192.168.130.130,但是却报错,查了资料发现需要更改mysql库的user表,于是去改,但悲剧发生了,root密码锁住了,查了很多资料说需要更改什么my.conf文件,但我根本就没有这个配置文件啊,:(。再查,只有重新初始化,还是报错,The server quit without updating PID file(…)失败。什么temp中mysql.sock不能访问,(好像是这个名字),最后删掉这个文件终于可以登录了。
好了,就写到吧,此致敬礼,此致那个敬礼。太晚了,晚安!
2020.2.2补充:
现在国家遭受到了新型冠状病毒的影响,确诊人数已经破万,在这里我只想说,中国加油,武汉加油,上海加油!