昨天花了一下午在CentOS6.5 上安装了MysqL,版本为5.7.11,下面介绍一下我安装时候出现的问题
以及解决方法,供大家参考。
1/清除残留
rpm -qa | grep MysqL // 这个命令就会查看该操作系统上是否已经安装了MysqL数据库
有的话,我们就通过 rpm -e 命令 或者 rpm -e –nodeps 命令来卸载掉
rpm -e MysqL // 普通删除模式
rpm -e –nodeps MysqL // 强力删除模式
如果使用上面命令删除时,提示有依赖的其它文件,
则用该命令可以对其进行强力删除在删除完以后我们可以通过 rpm -qa | grep MysqL 命令来查看MysqL是否已经卸载成功!!
在电脑中查找有关MysqL的文件尽可能删掉,如果有的话
比如/etc/my.cnf或者/etc/MysqL
2/下载及解压安装包
官方下载地址为:http://dev.mysql.com/downloads/mysql/
然后把它解压缩到Linux文件系统的/usr/local/目录下,好像默认的安装目录也是这个
tar –xzvf my MysqL-5.7.11-linux-glibc2.5-x86_64.tar.gz
mv my MysqL-5.7.11-linux-glibc2.5-x86_64.tar.gz MysqL //起个简单的名字
3/正式开始装了
安装这个软件我参考一些网上的教程,但是看上去有些迷糊也不确定对不对
为了正确起见我还是跑到官网找教程
2.2 Installing MysqL on Unix/Linux Using Generic Binaries
首先MysqL依赖于库libaio,所以我们就先安装这个库
具体命令如下
shell> yum search libaio # search for info
shell> yum install libaio # install library
我安装的时候已经是最新的库了,所以啥都没干
解压完成之后的目录如上所示
shell> groupadd MysqL #添加用户组
shell> useradd -r -g MysqL -s /bin/false MysqL #添加MysqL用户
shell> cd /usr/local #最好是安装在这个目录下,如果不是可能会报错
shell> tar zxvf /path/to/MysqL-VERSION-OS.tar.gz
shell> ln -s full-path-to-MysqL-VERSION-OS MysqL #我没有建立软连接,而是直接在这个目录下进行的
shell> cd MysqL #进入到解压的目录下面
shell> mkdir MysqL-files #创建此文件夹
shell> chmod 750 MysqL-files #改文件夹的权限
shell> chown -R MysqL . # .此时代表的文件夹是/usr/local/MysqL,改当前文件夹及子目录的所有者
shell> chgrp -R MysqL . # .此时代表的文件夹是/usr/local/MysqL,改当前文件夹及子目录的用户组
shell> bin/MysqL_install_db –user=MysqL # Before MysqL 5.7.6 #由于我们安装的是5.7.11,所以这句我们不执行
shell> bin/MysqLd –initialize –user=MysqL # MysqL 5.7.6 and up #这句好像是正式安装了,它会给你一个root的初始密码,最好要记住,记不住的话也行后面也有解决办法
shell> bin/MysqL_ssl_rsa_setup # MysqL 5.7.6 and up
shell> chown -R root .
shell> chown -R MysqL data MysqL-files
这个data文件夹怎么突然冒出来的,其实不是,在之前执行bin/MysqLd –initialize –user=MysqL # MysqL 5.7.6 and up的时候自动在
/usr/local/MysqL目录下生成一个目录data
shell> bin/MysqLd_safe –user=MysqL & #这个是干啥的我也不知道,好像是什么PID table啥的,后面就是它最烦
Next command is optional
shell> cp support-files/MysqL.server /etc/init.d/MysqL.server #服务加到启动项的
4/安装后的配置
在目录/usr/local/MysqL/support-files/下有个文件叫my-default.cnf
那么我们就是要修改一下这个配置文件
这里basedir = /usr/local/MysqL
datadir = /usr/local/MysqL/data
port = 3306
改完之后复制一份到/etc/目录下,重命名为my.cnf就是我们在最开始删的那个
然后在/etc/profile里面也添加一个路径
在文件末尾添加如上行
安装配置过程算是结束了
5/问题
一个软件就这样安装完了怎么行呢?来测试下
service MysqL.server start启动服务(root下启动服务的)
给我报着么个错,我也不知道怎么纠错,反正就在网上找
总之这篇博文教我怎么解决这个问题,
MysqL: Starting MysqL….. ERROR! The server quit without updating PID file解决办法
该博文里面有我就不在这引述了,反正我是通过重启解决的
解决bash: MysqL: command not found 的方法:
遇上-bash: MysqL: command not found的情况别着急,这个是因为/usr/local/bin目录下缺失MysqL导致,只需要一下方法建立软链接,即可以解决:
把MysqL安装目录,比如MysqLPATH/bin/MysqL,映射到/usr/local/bin目录下:
cd /usr/local/bin
ln -fs /MysqLPATH/bin/MysqL MysqL
还有其它常用命令MysqLadmin、MysqLdump等不可用时候都可按用此方法解决。
注:其中MysqLPATH是MysqL的实际安装路径
问题: ERROR 2002 (HY000): Can’t connect to local MysqL server through socket ‘/tmp/MysqL.sock’ (2)
Vi /usr/local/MysqL/support-files/my-default.cnf
修改:
socket = /tmp/MysqL.sock
vi /etc/my.cnf
修改:
socket = /tmp/MysqL.sock
6/忘记初始密码
之前在安装的时候不是有一步会给个初始密码你么,这在以前的MysqL的时候是没有初始密码的,直接回车就到数据库里面去了
然后就悲催了,密码忘记了
怎么解决这个问题的呢
网上有的方法是以前的,就是改/etc/my.cnf配置,不要密码进去之后
使用命令:
show databases;
使用命令切换到MysqL数据库:
use MysqL;
使用命令更改root密码:
UPDATE user SET Password=PASSWORD(‘newpassword’) where USER=’root’;(”operater”)
刷新权限:
FLUSH PRIVILEGES;
然后退出,重新登录:
quit
重新登录:
MysqL -uroot -p
出现输入密码提示,输入新的密码即可登录
悲催的是user表里面根本就没有这一项Password好么,只好另寻他路
修改MysqL的配置文件(默认为/etc/my.cnf),在[MysqLd]下添加一行skip-grant-tables
service MysqLd restart后,即可直接用MysqL进入
MysqL> update MysqL.user set authentication_string=password(‘123qwe’) where user=’root’ and Host = ‘localhost’;
MysqL> flush privileges;
MysqL> quit;
将/etc/my.cnf文件还原,重新启动MysqL:service MysqL restart,这个时候可以使用MysqL -u root -p’123qwe’进入了
MysqL>SET PASSWORD = PASSWORD(‘newpasswd’); 设置新密码
已知原始默认密码的情况下修改密码;
SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘newpass’);
服务的启动与关闭:
service MysqL.server stop
service MysqL.server start