CentOS 6.3 安装 MySQL 5.6.15并修改MySQL的root用户密码

来源:互联网 发布:无线mesh网络特点的是 编辑:程序博客网 时间:2024/05/24 07:15

一、安装前准备工作 

 

在linux下面 ,mysql一般是安装linux系统的时候自带的,一般都是5.1的版本。但是5.1的有一些功能没有,如 full join ,因为项目的需要,所以只好升级mysql数据库。因为官方是没有升级包的,所以只有先卸载,在升级。下载地址http://dev.mysql.com/downloads/mysql/这个是ORACLE官网的地址(Mysql已被oracle收购了)点击网址进入之后,需要你输入oracle的账号密码,如果没有,自己注册一个就行了,然后点击进入,选择同意协议,然后选择你的系统版本。

         安装时如果系统支持RPM方式安装,最好用这种方式安装,简单又方便。安装MYSQL时最好在官网选择对应的版本,没有的话就选择通用版本,下面是我系统的发行版本号,

[root@localhost src]# cat /etc/issue

CentOS release 6.3 (Final)

Kernel \r on an \m

安装MySQL前,确认Internet连接正常,以便下载安装文件。(可选)

先使用 yum -y update 指令升级系统到最新版本。(可选)

我的linux系统是32位,可以用命令查询:getconf LONG_BIT

         因为在官网上我选择的系统版本是Linux – Generic这个。从下载页面上看,可以看到server,client,share,devel等多个RPM包,server包是安装mysql服务的,clint包是安装MYSQL客户端的,通常安装这两个包就可以了,我这里多安装了个devel包,所以在官网下载了三个RPM包。

 

MySQL-devel-5.6.15-1.linux_glibc2.5.i386.rpm

MySQL-client-5.6.15-1.linux_glibc2.5.i386.rpm

MySQL-server-5.6.15-1.linux_glibc2.5.i386.rpm

 

可以到官网上下载对应的这三个包。

       如果系统上已经存在另一个版本的MYSQL,则需要先卸载干净,再安装新版本,否则会安装出错。下面是卸载过程。

删除干净的方法:

1.            rpm删除

先用rpm –qa |grep mysql查看安装的rpm包

注:有的时候,要用 # rpm -qa|grep MySQL  命令(因为linux是区分大小写的)。。

说明:rpm –qa | grepmysql命令是为了把mysql相关的包都列出来,我上面的例子是Linux AS4默认安装mysqlrpm软件包列表,如果是别的Linux版本列出来的列表有可能会不一样,不过不用担心,不管是什么,卸载都从最下面的一个包开始,直到卸载掉第一个为止。

说明:rpm –e 是卸载rpm包的命令,后面是包名称,最后的版本号是不用打的

再用(注意只能是client在前)

rpm -eMySQL-client-community-5.1.40-0.rhel5

rpm -eMySQL-server-community-5.1.40-0.rhel5

两个命令删除服务器端和客户端。

 

2.      删除老版本的开发头文件和库

这里可以肯定的是随着上面两个rpm包的删除,/usr/bin/下相应的很多mysql打头的文件和/usr/share/下的mysql文件夹都会删除,但是还有一些默认不会删除的如下:

/var/lib下面是否有一个mysql文件夹,这里是老版本的开发库。

/etc/下面是否有my.cnf文件,是老版本的配置文件。

用rm命令将以上文件全部删除。

 

3.      删除可能还在运行的mysql进程——这是最容易忽略的地方

可以用ps –ef | grepmysql查看下

-bash-3.1# ps-ef |grep mysql

root     4885     1  0 10:43?        00:00:00 /bin/sh bin/mysqld_safe--user=mysql

mysql4984  4885  0 10:43 ?00:00:00 /usr/local/mysql/bin/mysqld--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql--log-error=/usr/local/mysql/data/namenode.err--pid-file=/usr/local/mysql/data/namenode.pid --socket=/tmp/mysql.sock--port=3306

root     8116  7066  0 21:11 pts/1    00:00:00 grep mysql

多于一个时把他们全部kill掉。

否则会在你安装server的rpm包的时候报启动错误,我的报错最后两行如下:

StartingMySQL..Manager of pid-file quit without updating file.[失败]

Giving mysqld2 seconds to start.

其实出现start错误的还有其它的可能,下面这篇博客写得很清楚了。

http://www.coderbolg.com/content/87.html

 

4.      根据以上的方法完全删除mysql后再次安装。

ERROR1045 (28000): Access denied for user ’root’@’localhost’(using password: NO) 
这个错误的意思是所安装的mysql已经有密码,如果你想无密码登陆,休想!

 

二、正式安装

1、安装RPM包

登录到root用户,然后把下载的三个包放到/usr/local/src目录下,一般先安装server包。

在linux下安装mysql必须有root权限,否则权限会不够出现错误,并且安装完成后需要用root权限来启动和关闭mysql服务。

切换到root用户的命令如下

Shell>>su root

然后按提示输入root密码就可以了。

 

由于我在下载的时候是存放到/home/linux/下载  目录下,所以需要用cp命令把三个包移到/usr/local/src目录,命令如下:

Shell>>cp /home/linux/下载/MySQL-devel-5.6.15-1.linux_glibc2.5.i386.rpm/usr/local/src

Shell>>cp /home/linux/下载/MySQL-server-5.6.15-1.linux_glibc2.5.i386.rpm/usr/local/src

Shell>>cp /home/linux/下载/MySQL-client-5.6.15-1.linux_glibc2.5.i386.rpm/usr/local/src

 

         下面开始执行安装命令,rpm软件包使用rpm命令进行安装。切换到src目录后,命令代码如下:

Shell>>rpm –ivh MySQL-devel-5.6.15-1.linux_glibc2.5.i386.rpm

Shell>>rpm –ivh MySQL- server -5.6.15-1.linux_glibc2.5.i386.rpm

Shell>>rpm –ivh MySQL- client -5.6.15-1.linux_glibc2.5.i386.rpm

 

结果,意外产生了,用了上述方式安装并没有成功,后来查了下资料,与我系统centOS6.3相同的安装mysql5.6版本的,用了如下命令安装,成功了。命令如下

 

Shell>>rpm –ivh --replacefiles MySQL-devel-5.6.15-1.linux_glibc2.5.i386.rpm

Shell>>rpm –ivh --replacefiles MySQL- server -5.6.15-1.linux_glibc2.5.i386.rpm

Shell>>rpm –ivh --replacefiles MySQL- client -5.6.15-1.linux_glibc2.5.i386.rpm

2、初始化数据库

 

执行如下命令:

/usr/bin/mysql_install_db 

 

3、启动mysql服务:

执行启动命令:

service mysql start

 

使用命令ps -ef | grep mysql 查看mysql进程:

1. [root@localhost ~]# ps -ef | grep mysql  

2.  root     26047     1  0 18:14 pts/12   00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/localhost.localdomain.pid  

3. mysql    26227 26047  0 18:14 pts/12   00:00:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/lib/mysql/localhost.localdomain.pid --socket=/var/lib/mysql/mysql.sock  

4.  root     26545 24726  0 18:27 pts/8    00:00:00 grep mysql

 

4、第一次登陆设置root密码:

首先查看 cat /root/.mysql_secret

[root@localhost src]# cat/root/.mysql_secret

# The random password set for the root userat Fri Jan 10 20:00:34 2014 (local time): aJqZsA2m

 

然后命令行:mysql -u root -p ,然后输入上面的密码即可:

 

进入后输入如下命令:

mysql> show databases;

ERROR 1820 (HY000): You must SET PASSWORDbefore executing this statement

 

结果发现,要修改更新密码后才能进行对数据库的相关操作。

 

然后按照网上分享的一些常用修改密码的方式,均无法修改,后来找到一个同类问题的帖子,找到了解决方案,MySQL 5.6版本发现安装后,使用空密码无法登陆
安装的过程中有这样的一句话:
A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in '/root/.mysql_secret'.
You must change that password on your first connect, 
no other statement but 'SET PASSWORD' will be accepted.
See the manual for the semantics of the 'password expired' flag.
 
大概意思就是一个随机的密码已经生成可以在 '/root/.mysql_secret'.中找到
第一次连接必须变更密码且只能使用 'SET PASSWORD'命令

 

下面是正确修改root密码的方法

启动mysql服务后,用随机生成的密码登录再执行set命令修改,如下:

[root@localhost src]# cat/root/.mysql_secret

# The random password set for the root userat Fri Jan 10 20:00:34 2014 (local time): aJqZsA2m

 

[root@localhost src]# mysql -u root -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 7

Server version: 5.6.15

 

Copyright (c) 2000, 2013, Oracle and/or itsaffiliates. All rights reserved.

 

Oracle is a registered trademark of OracleCorporation and/or its

affiliates. Other names may be trademarksof their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' toclear the current input statement.

 

mysql> show databases;

ERROR 1820 (HY000): You must SET PASSWORDbefore executing this statement

mysql> setpassword=password('lu5896848');

Query OK, 0 rows affected (0.17 sec)

到此,已经成功修改密码,重启服务登录后便可以用新密码登录数据库了。

 

相关参考资料

http://www.cr173.com/html/19582_1.html

http://www.myexception.cn/mysql/1396913.html

http://blog.sina.com.cn/s/blog_6d39ac7e01017krx.html

1 0
原创粉丝点击