阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS7.0使用yum安装MySQL及使用遇到的问题

130次阅读
没有评论

共计 4167 个字符,预计需要花费 11 分钟才能阅读完成。

在 CentOS 7.0 下安装 MySQL 的时候,使用 yum list | grep mysql 来查找 yum 源中是否有 MySQL,结果如下:

[root@VM_47_56_centos ~]# yum list | grep mysql
akonadi-mysql.x86_64                    1.9.2-4.el7                    base     
apr-util-mysql.x86_64                   1.5.2-6.el7                    base       
mysql-proxy.x86_64                      0.8.5-2.el7                    epel     
mysql-proxy-devel.x86_64                0.8.5-2.el7                    epel     
mysql-router.x86_64                     2.0.2-1.el7                    mysql-tools-community
mysql-router-debuginfo.x86_64           2.0.2-1.el7                    mysql-tools-community
mysql-utilities.noarch                  1.5.6-1.el7                    mysql-tools-community
mysql-utilities-extra.noarch            1.5.6-1.el7                    mysql-tools
mysqlreport.noarch                      3.5-11.el7                     epel     
mysqltuner.noarch                       1.2.0-7.el7                    epel     
省略部分内容。。。。[root@VM_47_56_centos ~]# 

总之是看不到 mysql-server 的影子,(PS: 据说 Centos7.0 的源中暂时还没有 mysql,但是相同版本的 Centos 在阿里云是可以直接使用 yum install mysql-server 来直接安装 mysql 的)

于是找了一些 mysql 的安装源,安装过程如下:

安装过程:

为了解决这个问题,我们要先下载 mysql 的 repo 源。

  • 1、下载 mysql 的 repo 源
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
  • 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

登录时有可能报这样的错: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;

CentOS7.0 使用 yum 安装 MySQL 及使用遇到的问题

可以看出该表显示的倒数第二行为:

+--------+-------------------------------------------+--------------------+
| 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 赋予了所有的权限,包括远程访问权限。
这样就可以为其设置密码,然后就可以使用密码进行登录。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-09/134992.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计4167字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中