您的位置:首页 > 运维架构 > Linux

CentOS 6.5下RPM方式(重新)安装MySQL 5.7.21从头到尾篇

2018-02-14 23:18 661 查看
今天把Mysql5.1升级到了5.7,浪费了一天为了避免以后重复麻烦,总结一下(红色字体为正常执行顺序):

查看该操作系统上是否已经安装了mysql数据库

rpm -qa | grep mysql


通过 rpm -e 命令 或者 rpm -e –nodeps 命令卸载

rpm -e mysql...
// 普通删除模式

rpm -e --nodeps mysql...
// 强力删除模式(包括依赖包)

此处mysql…代指第一步查询列表

#如果没有安装,只是有包,则remove

yum -y remove mysql-libs


查看卸载是否成功

rpm -qa | grep mysql


使用rpm软件包安装mysql

安装依赖包

rpm -ivh mysql-community-common-5.7.9-1.el6.x86_64.rpm


rpm -ivh mysql-community-libs-5.7.9-1.el6.x86_64.rpm


安装客户端

rpm -ivh mysql-community-client-5.7.9-1.el6.x86_64.rpm


安装服务端

rpm -ivh mysql-community-server-5.7.9-1.el6.x86_64.rpm


根据/etc/my.cnf创建相应的文件,并授权

mkdir -p /var/run/mysql


mkdir -p /var/log/mysql


chown -R mysql:mysql /var/log/mysql


chown -R mysql:mysql /var/run/mysql


注:/etc/my.cnf中没有basedir路径,需要添加

basedir=/usr/local/mysql

初始化数据库

cd /usr/bin


会为root账户生成一个随机的初始密码( 密码位置:/var/log/mysqld.log )

注:使用命令:mysql -u root -p,然后输入密码来登录MySQL

mysqld --initialize --user=mysql


不会为root账户生成一个随机的初始密码

注:使用命令:mysql -u root –skip-password直接登录MySQL

mysqld --initialize-insecure --user=mysql


注:初始化时,mysqld服务会检查数据目录是否存在:

如果数据目录不存在,mysqld则会创建它。

如果数据目录存在,且不是空目录(即包含有文件或子目录),mysqld会显示一条错误信息并中止:

[ERROR] –initialize specified but the data

directory exists. Aborting.

解决方案: 将数据目录重命名后,重新再初始化一次 mv /var/lib/mysql /var/lib/mysql.bak8.

配置mysql服务开机自动启动

检查自启动项列表中没有mysqld这个,如果没有就添加mysqld:

chkconfig --list mysqld


chkconfig --add mysqld


设置开机启动

chkconfig mysqld on


启动mysql

启动mysqld服务

service mysqld start


检查mysqld是否已经启动

service mysqld status


修改mysql用户密码(初始root密码文件在/var/log/mysqld.log)

mysql -uroot-p


mysql>
alter user 'root'@'localhost' identified by '123456';


已root用户身份登录

mysql -uroot -p123456


请看下面的重点:一般你rpm方式安装成功是没有问题的,问题是安装成功后启动不起来的事。

你要想执行mysql -uroot -p命令首先你得启动你安装的mysql服务,当你执行启动命令:service mysqld start出现报错信息:

MySQL Daemon failed to start.
Starting mysqld: [FAILED]


解决方法:执行下列命令然后再执行service mysqld start启动mysql

rm -fr /var/lib/mysql/*
m /var/lock/subsys/mysqld
killall mysqld


3.mysql服务启动后,执行mysql -uroot -p进入修改原始密码:

注:若登录失败就使用命令
mysql -u root --skip-password
直接登录MySQL,执行下列语句修改密码:

MySQL -u root

  mysql>
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');


  

该语句若失败, 用UPDATE直接编辑user表

mysql -u root

 mysql>
use mysql;


 mysql>
UPDATE user SET Password = PASSWORD('123456') WHERE user = 'root';


 mysql>
FLUSH PRIVILEGES;


4 远程连接mysql root账号报错:2003-can’t connect to MYSQL serve

解决方法:

1.登录数据库:mysql -uroot -p(密码|123456)

2.执行:

mysql>
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;


3.执行
flush privileges;
命令立即生效

4.使用
exit
命令退出MySQL

5.然后打开vim /etc/mysql/my.cnf

将bind-address = 127.0.0.1

设置成bind-address = 0.0.0.0(设备地址)

重新启动(命令如下):

/etc/init.d/mysql stop

/etc/init.d/mysql start

6.若是还报这个问题,也许是3306端口被防火墙限制了,不过我的解决方法是
重启Linux服务器


若还是不行,参考这篇如何设置3306端口防火墙。点我阅读相关博客

收藏博客|方便查找
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: