一、关于云主机的mysql
最近一次云主机的服务器由于被攻击便打算重装一边mysql,彻底删除相关文件后重新安装,没想到怎么装都会出问题。再启动的时候总是出现ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2),网上很多人回答是权限的问题,这确实后一部分,但是有些问题就像我这种明显就是搞错了软件没有安装完全导致无法使用。
mysql密码不要设置root、123456等傻瓜式密码,自己的主机可以主机很容易被攻击,道理很简单,连接数据库只需要账户名和密码而不需要你的主机账号和密码,别人通过你的ip加3306的端口用上root密码岂不是简简单单的破解了。公网环境复杂,一定要配置好安全组和防火墙,不要随便开放端口,并且设置较为复杂的密码。对方修改了我的数据库文件,还写入了很多杂七杂八的文件,留下一个qq号码(哭笑不得),还好不重要。为了避免不必要的麻烦也请大家注意。
二、mysql和mariaDB的区别
这里首先要了解清楚mysql和mariaDB的区别,你的机器装的到底是哪一个版本,现在的centos默认是mariaDB,以前是mysql。关于这两者的区别就是:mariaDB是mysql源代码的一个分支,现在mariaDB 现在是很多开源系统默认的 mysql 实现。mariaDB 基本上和 mysql 差不多,对使用者来说基本都是一样的。
centos可以通过
- rpm -qa|grep mysql 查看有没有安装mysql
- rpm -qa|grep maria 查看有没有安装mariaDB
具体看你要安装哪种 ,不要两种混装,这样会导致问题的。
三、安装mariaDB
可以直接通过yum源来安装,默认安装的就是mysql
- yum -y install mysql
- yum -y install mariadb-server
- mysql_secure_installation 设置 root密码等相关
第二步没安装的的话,会报错的,即ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ 很多人说权限的问题,这个也是有可能的
四、安装mysql
在安装mysql之前请把所有的关于mariaDB的东西删除干净,然后去官网下载rpm包(centos默认的yum源已经没有mysql的安装包了,你可以通过yum list |grep mysql,看到没有mysql-server这个安装包)或者下述的方法安装。- rpm -qa|grep maria 找出所有关于mariaDB的安装包
- yum remove -y maria* 在后面加上上面的包名删除
- wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm这里是获取yum源,因为官方的没有我们要下载一个,这个源是mysql官网提供的
- sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm 安装,安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo.
- sudo yum install mysql-server
- systemctl start mysql 启动mysql服务
- systemctl enable mysql 设置mysql开机启动
- mysql -u root -p(刚进去是没有密码的直接回车)
- update user set password=PASSWORD(’passwd’) where User=’root’;
- flush privileges;
五、关于目录
其实这些都是定义在/etc/my.cnf文件中,里面有默认的定义。出现问题首先应该看日志的错误输出。
1. mysql数据库的data目录 /var/lib/mysql/
2. mysql头文件:/usr/include/mysql/
3. mysql可执行文件: /usr/bin/
4. mysql库文件:/usr/lib64/mysql
3. mysql日志文件:/var/log/mysqld.log
六、实际遇到的问题
那上面的方法安装还是出现上述的问题,可以考虑的点SELINUX(内网一般关闭好了),防火墙,配置文件。
1.由于mariaDB的问题。残留文件
找出对应的删除文件
2.由于配置文件的问题。
当时无意加了条设置字符的语句没想到后来无法启动
如图所示删除对应的语句。
3.InnoDB: .\ibdata1 can’t be opened in read-write mode
解决方法: 删除/var/lib/mysql/目录下的ib_logfile0和ib_logfile1
4.权限问题
检查上面所列出的目录,在看日志中是否有关于没有权限的报错。
5.关于无法远程登陆的问题可以直接改表:
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;