环境:centos 6.4 x64



先下载mysql安装包

打开  http://dev.mysql.com/downloads/mysql/ 



选择 linux - Generic




Linux下Mysql 5.6.21 tar包安装实践_MySQL


再选择


Linux下Mysql 5.6.21 tar包安装实践_操作系统_02


下载完毕后,得到安装包 mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz


此包不再需要make编译源代码(真是扛扛的),之前的mysql-5.6.4.tar.gz包是源码包,需要先cmake,再make & make install


上传到centos6.4的/software目录下(可以改为你需要的目录,这里只是演示)


ssh登录到centos6.4,开始执行以下命令


 


1.解压tar包




cd /software


tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz


mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21


 


2.添加用户与组




groupadd mysql


useradd -r -g mysql mysql


chown -R mysql:mysql mysql-5.6.21


 


3.安装数据库




su mysql


cd mysql-5.6.21/scripts


./mysql_install_db --user=mysql --basedir=/software/mysql-5.6.21 --datadir=/software/mysql-5.6.21/data


exit


 


4.配置文件




cd /software/mysql-5.6.21/support-files


cp my-default.cnf /etc/my.cnf


cp mysql.server /etc/init.d/mysql


vim /etc/init.d/mysql           #若mysql的安装目录是/usr/local/mysql,则可省略此步


修改文件中的两个变更值


basedir=/software/mysql-5.6.21
datadir=/software/mysql-5.6.21/data


 


5.配置环境变量



vim /etc/profile

export MYSQL_HOME="/software/mysql-5.6.21"


export PATH="$PATH:$MYSQL_HOME/bin"


保存退出


. /etc/profile


 


6.添加自启动服务




chkconfig --add mysql


chkconfig mysql on


 


7.启动mysql




service mysql start


 


8.登录mysql及改密码与配置远程访问




#修改root用户密码


 -p      #登录mysql,需要输入密码


#允许root用户远程访问


mysql>FLUSH PRIVILEGES;     #刷新权限


mysql>exit


 


---------------------------2014/11/25 添加


mysqld_safe 登进去,发现user表居然是空的,没有一个用户,郁闷。


于是从其它地方导出了一份user表的sql语句,手动插入了一个用户,再登录就可以了。


附:


忘记root密码后,如何找回密码


cd $MYSQL_HOME


./bin/mysqld_safe --basedir=/data/mysql-5.6.21 --datadir=/data/mysql-5.6.21/data --skip-grant-tables &
mysql -u root mysql
UPDATE user SET password=PASSWORD("new_password") WHERE user='root';
FLUSH PRIVILEGES;


 


 


mysqladmin: connect to server at 'localhost' failed;错误解决方法

# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

# mysql -u root -p password 'newpassword'
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)' 

网上找到的方法操作很简单,如下:

 

# /etc/init.d/mysql stop

# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

# mysql -u root mysql

mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root' and host='root' or host='localhost';//把空的用户密码都修改成非空的密码就行了。

mysql> FLUSH PRIVILEGES;

mysql> quit

# /etc/init.d/mysqld restart

# mysql -uroot -p

Enter password: <输入新设的密码newpassword> 

如何修改mysql root密码

如何修改mysql root密码
  忘记MySQL ROOT密码是在MySQ使用中很常见的问题,可是有很多朋友并不会重置ROOT密码,那叫苦啊,特写此文章与大家交流:

1、编辑MySQL的配置文件:my.ini
一般在MySQL安装目录下有my.ini即MySQL的配置文件。
在此配置文件的最后添加如下一行:
skip-grant-tables
保存退出编辑。

2、然后重启MySQL服务
在命令行下执行:
net stop MySQL
net start MySQL

3、设置新的ROOT密码
然后再在命令行下执行:
MySQL -u root -p MySQL或mysql -u root -p
直接回车无需密码即可进入数据库了。
此时,在命令行下执行 use mysql;
现在我们执行如下语句把root密码更新为:
update user set password=PASSWORD("root") where user='root';
(注意:此时不用使用mysqladmin -u root -p password '你的新密码'这条命令修改密码,因为'skip-grant-tables'配置,
不信的话,你可以试用一下,它肯定会报如下所示的错误:
F:\Documents and Settings\long>mysqladmin -u root -p password 'root'
Enter password:
Warning: single quotes were not trimmed from the password by your command
line client, as you might have expected.
mysqladmin:
You cannot use 'password' command as mysqld runs
 with grant tables disabled (was started with --skip-grant-tables).
Use: "mysqladmin flush-privileges password '*'" instead)
exit 退出MySQL。

4、还原配置文件并重启服务

然后修改MySQL配置文件把刚才添加的那一行'skip-grant-tables'删除。
再次重起MySQL服务,密码修改完毕。
用新密码root试一下吧,又能登入重新进入mysql了?



附mysql修改密码的一些方法:
1. 用MYSQL的grant语句,例如
mysql -h hostname –u root 命令登录到mysqld server 用grant 命令改变口令: 
mysql -h 192.168.1.101 -u root 
上边的192.168.1.101 是偶的mysqld 运行机器,你换成自己的,这样登录上去,就可以修改密码了,
其实没必要这么麻烦,直接mysql -u root就可以了。 
GRANT ALL ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root' WITH GRANT OPTION 

2. mysqladmin -u 用户名 -p 旧密码 password 新密码 
例1:给root 加个密码root。首先进入cmd中,然后键入 
以下命令,至于在CMD下能否使用mysqladmin,
就要看你的Windows环境变量PATH中是否添加“E:\Program Files\MySQL\MySQL Server 5.1\bin;”(请改为你自己的安装路径)了。)
mysqladmin -u root password root 
注:因为开始时root 没有密码,所以-p 旧密码一项就可以省略了。
例2:再将root 的密码改为admin。 
mysqladmin –u root -proot password admin(注意-p 不要和后面的密码分 
开写,要写在一起,不然会出错,错误如下所示:
F:\Documents and Settings\long>mysqladmin -u root -p root password admin
Enter password: ****
mysqladmin: Unknown command: 'root') 
当然你也可以这样写:mysqladmin –u root -p password admin回车,
然后再输入你的旧密码,这样也是完全也可以的,看你的爱好了.
例3:再将root用户的密码去掉.
F:\Documents and Settings\long>mysqladmin -u root -p password  ;
Enter password: root
此时,root用户又没有密码了.可以通过下面的方法设置:
F:\Documents and Settings\long>mysql -u root
mysql>set password for 'root'@'localhost'=password('root');(语法:SET PASSWORD FOR '用户名'@'主机' = PASSWORD('密码'))
mysql>set password for 'root'@'%'=password('root'); 
//本条可选,这是在配置mysql数据库,如果你选择了允许root通过远程登录进来时,你在mysql数据库下的user表中,
use mysql;
select * from user;可以看到有两条记录,如果你没有配置这一项的话,只会第一条记录!
Host                    User     Password
'localhost', 'root', '*9C9F4927129ECC3209D8550DC8B67156FDBF9418', ...
'%', 'root', '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B', ...
通过以上设置,root的密码将变为root这样就完成了根用户root密码的设置工作。

3. use mysql;
 update user set password =password('yourpass') where user='root' 

(注:下面的这些方法我本人没有试过,不知对不对,我只是转载了一下:)
下面的方法都在mysql提示符下使用,且必须有mysql的root权限: 
方法4 
mysql> INSERT INTO mysql.user (Host,User,Password) 
VALUES('%','jeffrey',PASSWORD('biscuit')); 
mysql> FLUSH PRIVILEGES 
确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。 
在《mysql中文参考手册》里有这个例子,所以我也就写出来了。 
注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。 

方法5 
和方法三一样,只是使用了REPLACE语句 
mysql> REPLACE INTO mysql.user (Host,User,Password) 
VALUES('%','jeffrey',PASSWORD('biscuit')); 
mysql> FLUSH PRIVILEGES 

方法6
使用SET PASSWORD语句, 
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit'); 
你也必须使用PASSWORD()函数, 
但是不需要使用FLUSH PRIVILEGES。 


方法7 
使用GRANT ... IDENTIFIED BY语句 
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit'; 
这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。

注:mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,
否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。

# mysql -u root -p

Enter password:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)


# mysql -u root -p password 'newpassword'

Enter password:

mysqladmin: connect to server at 'localhost' failed

error: 'Access denied for user 'root'@'localhost' (using password: YES)' 



网上找到的方法操作很简单,如下:

 

# /etc/init.d/mysql stop

# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

# mysql -u root mysql

mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root' and host='root' or host='localhost';//把空的用户密码都修改成非空的密码就行了。

mysql> FLUSH PRIVILEGES;

mysql> quit

# /etc/init.d/mysqld restart

# mysql -uroot -p

Enter password: <输入新设的密码newpassword>