- 1、下载mysql的repo源
- 2、安装mysql-community-release-el7-5.noarch.rpm包
$ sudo rpm
-ivh
mysql
-community
-release
-el7
-
5.
noarch
.
rpm
安装这个包后,会获得两个mysql的yum repo源:
/etc/yum.repos.d/mysql-community.repo和
/etc/yum.repos.d/mysql-community-source.repo。
- 3、安装mysql
$
sudo
yum install mysql-server
这个过程中就会看到有mysql的软件包存在:
[root@VM
_47_
56
_centos ~]# sudo yum install mysql-server
已加载插件:fastestmirror, langpacks
| 2.5 kB 00:00:00
mysql-tools-community | 2.5 kB 00:00:00
mysql56-community | 2.5 kB 00:00:00
(1/3): mysql-connectors-community/x86_
64/primary
_db | 8.6 kB 00:00:00
(2/3): mysql-tools-community/x86_
64/primary
_db | 22 kB 00:00:00
(3/3): mysql56-community/x86_
64/primary
_db | 109 kB 00:00:01
Loading mirror speeds from cached hostfile
* base:
mirrors.sina.cn
* extras:
mirrors.sina.cn
* updates:
mirrors.sina.cn
正在解决依赖关系
--> 正在检查事务
省略内容。。。
依赖关系解决
=================================================================================================================
Package 架构 版本 源 大小
=================================================================================================================
正在安装:
mysql-community-libs x86_64 5.6.27-2.el7 mysql56-community 2.0 M
替换 mariadb-libs.x86_64 1:5.5.44-1.el7_1
mysql-community-server x86_64 5.6.27-2.el7 mysql56-community 58 M
为依赖而安装:
mysql-community-client x86_64 5.6.27-2.el7 mysql56-community 19 M
mysql-community-common x86_64 5.6.27-2.el7 mysql56-community 256 k
numactl-libs x86_64 2.0.9-5.el7_1
事务概要
=================================================================================================================
安装 2 软件包 (+9 依赖软件包)
总下载量:80 M
Is this ok [y/d/N]: y
下边的安装和其他安装一样,
根据步骤安装就可以了,不过安装完成后,没有密码,需要重置密码。
- 4、重置密码
重置密码前,首先要登录
$
mysql -u root
1
登录时有可能报这样的错: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 mysql:mysql /var/lib/mysql
#这里的mysql是用户名(需要设置用户组合用户)
然后,重启服务:
$
service mysqld restart
接下来登录重置密码:
$ mysql -u root
mysql >
use
mysql
;
mysql > update user set password=password(
'xu827928'
) where user=
'root'
;
mysql >
exit
;
- 5、开放3306端口(可以不用设置)
$
sudo
vim /etc/sysconfig/iptables
添加以下内容:
-A
INPUT
-p
tcp
-m
state
--
state
NEW
-m
tcp
--
dport
3306
-j
ACCEPT
保存后重启防火墙:
$
sudo
service iptables restart
这样从其它客户机也可以连接上mysql服务了。
- 6、修改权限可以使其他机器登录:
mysql
>
mysql
-h
localhost
-u
root
//这样应该可以进入MySQL服务器
mysql
>
GRANT
ALL
PRIVILEGES
ON
*
.
*
TO
'root'
@
'%'
WITH
GRANT OPTION
//赋予任何主机访问数据的权限
mysql
>
FLUSH PRIVILEGES
//修改生效
mysql
>
EXIT
//退出MySQL服务器
使用时遇到的问题
(1)java.sql.SQLException: Access denied for user ‘root’@’localhost’ (using password:YES)
java.sql.SQLException: Access denied
for
user
'root'
@
'localhost'
(
using
password: YES)
at
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:
946
)
at
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:
2870
)
at
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:
812
)
at
com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:
3269
)
at
com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:
1182
)
问题的场景是:在命令行模式下用户名和密码都是正确的但是就是出现登陆不了授权失败的问题。
解决方法:
进入MySQL命令台:
mysql> select user,password,host from mysql.user;
可以看出该表显示的倒数第二行为:
+--------+
-------------------------------------------
+--------------------+
| user | password | host |
+--------+-------------------------------------------+--------------------+
| root | | % |
可以看出在root用户下的任何主机是没有password的,因此可以采取两种方式,在远端使用的时候没有密码,显然是不安全的,然后就是为其在远端访问的时候设置密码。步骤如下:
mysql
>
grant
all
privileges
on
*
.
*
to
root@
"%"
identified
by
"your password"
;
Query OK,
0
rows
affected (
0.00
sec)
mysql
>
flush privileges;
Query OK,
0
rows
affected (
0.00
sec)
这相当于是给IP-xxx.xxx.xxx.xxx赋予了所有的权限,包括远程访问权限。