今天在腾讯云上安装mysql感觉心很累。
从 CentOS 7 系统开始,MariaDB 成为 yum 源中默认的数据库安装包。在 CentOS 7 及以上的系统中使用 yum 安装 MySQL 包将无法使用 MySQL。
在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。
1.下载mysql的repo源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2.安装mysql-community-release-el7-5.noarch.rpm包
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
3.安装mysqlsudo yum install mysql-server
4.重置mysql密码
$ mysql -u root
登录时有可能报这样的错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:
sudo chown -R root:root /var/lib/mysql
5. 重启mysql服务
service mysqld restart
接下来登录重置密码:
mysql -u root //直接回车进入mysql控制台
mysql > use mysql;
mysql > update user set password=password('123456') where user='root';
mysql > exit;
再次重启mysql服务即可
service mysqld restart
嗯....接下来并不算完,一般我们要配置mysql自启动,然后问题来了
首先是在执行 chkconfig --add mysql 时报错
chkconfig error reading information on service mysql: No such file or direct
然后就开始找吧,进入/etc/rc.d/init.d 下面未发现有mysqld,百度说去 /usr/share/mysql目录下复制一个mysql.server文件,还是没有,这就尴尬了。
执行 whereis mysql ,得到几个路径,结果第一个进不去,更惨
mysql:
/usr/bin/mysql /usr/lib64/mysql /usr/include/mysql /usr/share/mysql
/usr/share/man/man1/mysql.1.gz
偶然搜到一个查看mysql 状态的指令,systemctl status mysqld.service
很高兴,找到mysql.server了,赶紧复制
cp /usr/lib/systemd/system/mysqld.service /etc/rc.d/init.d/mysqld
接着执行 chkconfig --add mysql ,然后惊喜的发现换了个错误.....
service mysqld does not support chkconfig
继续百度之路,最后是修改 /etc/rc.d/init.d/mysqld,在脚本开头的#里加上一句话,
# chkconfig: 2345 10 90
再执行chkconfig --add mysqld 就可以了,最后执行 chkconfig --level 3 mysqld on
虽然会报Forwarding request to 'systemctl enable mysqld.service' ,但是我重启之后mysql是启动的,如果以后出问题再继续修改吧