mysql 官网:https://www.mysql.com
oracle已经收购mysql,进入oracle 官网也可以找到mysql安装包下载:https://www.oracle.com/index.html
mysql 选择社区版 :mysql和大多数开源产品的路线一样,分为社区版和商业版。,社区版的开发及测试环境没有那么严格.遵守GPL协议(通用性公开许可证)。
2.1.选择开源的社区版稳定版GA版本
2.2.可以选择5.1或5.5,互联网公司主流5.5,其次5.1或者5.6
2.3.选择mysql数据库GA版发布后6个月以上的GA版本
2.4.要选择前后几个月没有大的bug修复版本,而不是大量修复bug的集中版本
2.5.考虑开发人员开发程序使用的版本是否兼容你选的版本.作为内部开发测试数据库环境,跑大概3-6个月时间.
我这里选择了5.7
上图显示第一个是二进制源码包,第二个是二进制测试包,第三个是源码包。
二进制版本的mysql是已经编译好的,无需 configure ,make make install 等步骤,只需配置一下即可使用,卸载也方便,直接删除即可。可以自行调整编译参数,最大化地定制安装结果。
无需登陆,直接开始下载。
mysql 下载后,通过xshell文件上传到centos7虚拟机上
tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
重命名文件
mv mysql-5.7.23-linux-glibc2.12-x86_64 mysql mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
建议一般不要修改默认文件名,通过软连接来完成
ln -s mysql-5.7.23-linux-glibc2.12-x86_64 mysql
useradd mysql
7.1在根目录下
mkdir -p data
cd data
mkdir -p mysql
7.2授权
chown mysql:mysql -R /data/mysql
在/etc目录下创建my.cnf文件,并进行配置
vim /etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3310
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
!includedir /etc/my.cnf.d
注意:log-error 一定要配置,因为如果mysql启动错误,可以从日志文件中找到错误原因。其次bind—address配置0.0.0.0是为了监听所有的连接。 编辑完后 按esc 后按住 shift+: 输入 wq表示保存并退出 。
9.1注意这里需要进到刚刚解压mysql的bin目录下
cd usr/local/mysql/bin
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
查看错误日志文件是否有错
vim /data/mysql/mysql.err
可以看到日志有错误提示,提示与刚刚初始化命令中datadir相关
看到刚刚初始化命令中datadir前面少了–,所以大家安装的时候一定要细心。
9.2 重新初始化
注意重新初始化之前一定要把datadir目录下的文件清空,不然初始化还会报错进入到datadir目录 删除数据
cd /data/mysql/
rm -rf *
删除后,重新初始化
cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
再次查看错误日志文件是否有错
vim /data/mysql/mysql.err
可以看到到日志文件没有报错,而且有了临时密码,表示初始化成功
10.1、初始化成功后,查看初始化密码
cat /data/mysql/mysql.err |grep password
并把密码复制下来
到这里的时候,发现这个xshell背景太丑,字体太小。设置了下xshell背景,效果下面可见。
10.2、登录mysql
./mysqladmin -u root -p password
并输入刚刚复制的密码,但是 却提示不能通过mysql.sock文件实现连接
查找mysql.sock 文件
find / -name mysql.sock
表示没有找到mysql.sock文件。
所以就尝试重启服务器即我的虚拟机,看服务器在启动时会不会重新创建该文件,然而重启后并没有卵用
又百度了下说连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。可以通过tcp/ip协议来连接。
即:
mysql -uroot -h 127.0.0.1 -p
表示不认识mysql命令,到目前位置还未配置环境变 即没有将mysql的bash加到path中。
编辑环境变量文件
vim /etc/profile
在后面添加系统bin路径以及mysql解压路径
export MYSQL_HOME=/usr/local/mysql/
export PATH=$PATH:$MYSQL_HOME/bin
配置好后再重启Xshell
然后再执行
mysql -uroot -h 127.0.0.1 -p
然后再输入刚刚临时文件的密码,但是 又又又报错了, 我内心快要崩溃了
到这里,又去问度娘,可能mysql服务没有启动,对啊,刚刚重启了虚拟机,并没有启动mysql服务。
service mysql start
mysql启动成功后,再通过tcp/ip连接,就在以为快要打工告成的时候,居然又报了同样的错
那到这里,估计就是端口号的问题了, 百度了下mysql -h -uroot -p 命令默认的窗口是3306, 而我配置文件里的窗口是3310所以这里还需要指定端口号,真的是想要与众不同,结果可把自己坑惨了……
mysql -h 127.0.0.1 -uroot -p --port=3310
这里需要先重新设置密码,不然进行数据库操作
set password=password('123456');
flush privileges; 并刷新权限
如果不先设置密码会提示如下错
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
然后数据库就可以使用了
mysql.sock 是在配置文件my.cnf中。因为原来的位置不能生成,所以把原来的配置注释掉,重新配置一个路径。
6.1修改my.cnf
vim /etc/my.cnf
service mysql restart
重启服务后我们进入新配置的socket路径下看到了mysql.sock身影
通过这个socket文件连接数据库,成功连接
mysql -u root -p -S /data/mysql/mysql.sock
建立软连接
ln -s /data/mysql/ /tmp/
然后也可以使用tmp路径登陆
mysql -u root -p -S /tmp/mysql.sock
如果要远程访问数据库,只需要把拥有全部权限的root账号对应的记录的Host字段改为%就可以了。
update user set Host = '%' where Host = 'localhost' and user = 'root';
select host,user from user;
在本地windows环境下访问虚拟机上的mysql
查看虚拟机的的ip
ifconfig -a
mysql -h 192.168.85.128 -uroot -p --port=3310
经过一天的折腾总算是把mysql安装成功,其中也通过度娘解决了很多问题,对linux命令仍然不熟悉,不理解其中意思,很多只是照着葫芦画瓢,linux学习任重而道远。