前几天在阿里云买了个服务器 ,准备自己玩玩,现将最新版mysql(5.7.16)安装步骤,以及遇到问题及解决过程分享如下:
第一步:下载rpm包
mysql官网下载:http://dev.mysql.com/downloads/mysql/
但如果你的下载网速不好的话也可以点下面的链接下载自己想要的版本
http://mirrors.sohu.com/mysql/MySQL-5.7/
我用的是(CentOs6.5)下载的是:
mysql-5.7.16-1.el6.x86_64.rpm-bundle.tar文件
第二步:进行安装
具体如下:
1. 检查系统自带的MySQL及相关RPM包,是否安装
rpm -qa | grep -i mysql
如果有安装,则移除(rpm –e 名称)
yum -y remove mysql
2. 创建用户和组(如果已经创建则跳过)
groupadd mysql
useradd -r -g mysql mysql
3. 解压tar文件,并安装
进入文件目录 运行:tar -xf mysql-5.7.16-1.el6.x86_64.rpm-bundle.tar 解压完成,然后依次执行。
rpm -ivh mysql-community-common-5.7.16-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.16-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.16-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.16-1.el6.x86_64.rpm
到此,mysql已经安装完成。
4. 基础配置执行:
service mysqld start
出现下图表示安装成功关闭mysql服务:
service mysqld stop
初始化(这里是以root身份执行的):
bin/mysqld --initialize --user=mysql
注:使用–initialize会为root账户生成一个随机的初始密码,我们可以使用命令:mysql -u root -p,然后输入密码来登录MySQL。使用–initialize-insecure不会为root账户生成一个随机的初始密码,我们可以使用命令:mysql -u root –skip-password直接登录MySQL,这里我是用的第一种。
下面我们来看下root账户的随机初始密码,执行命令:
vi /var/log/mysqld.log
启动mysql服务 :
service mysqld start
登录:
mysql -u root -p
并输入密码
但是,我就是在这里遇到了问题,输入密码后提示 :Access denied for user ‘root’@’localhost’ (using password: YES) 。百度了下,回答有很多 ,试了一下,过程如下:
首先关闭MySQL服务 :
service mysqld stop
用mysqld_safe重启服务,执行:
mysqld_safe --user=root --skip-grant-tables --skip-networking &
如果提示mysqld_safe A mysqld process already exists。执行ps -A|grep mysql
显示当前进程,然后执行
kill -9 xxxx
xxxx填上一步你查出的进程序号。然后执行就没问题了。执行
mysql -u root
网上的很多说法是执行
update user set password=PASSWORD('12345') where user='root';
我试了但是提示没有password这个字段,百度了下原来5.7版本后的 password 字段变成了authentication_string,执行update user set authentication_string=PASSWORD('12345') where user='root';
果然可以。
然后 执行:flush privileges;
最后 :quit
再次登录 OK
然后我想让root在其他主机上也能链接到此数据库
执行 :
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH
提示 You must reset your password ,意思是让我先重设一下密码(what the xxxx)。好吧,接着来。
GRANT OPTION;密码重置,一样先关闭mysql 服务,依次执行:
mysqld_safe --user=root --skip-networking &
mysql -u root -p
SET PASSWORD = PASSWORD('your new password');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;
quit;
注:新密码不能太简单,不然会提示密码过于简单,最好包含大小写字母,数字,特殊字符。
一切OK
执行 :GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH
GRANT OPTION;
重启mysql服务:service mysqld restart
测试通过。。。