详解腾讯云CentOS7.0使用yum安装mysql及使用遇到的问题
作者:徐刘根 发布时间:2024-01-16 07:22:20
背景:
今天才申请了腾讯云+校园计划的1元服务器,安装了Centos7.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;
可以看出该表显示的倒数第二行为:
+--------+-------------------------------------------+--------------------+
| 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://blog.csdn.net/xlgen157387/article/details/49964557


猜你喜欢
- 之前看到过很多人写的飞机大战,当然了之前我也写过多个版本,总体来说功能是实现了,但总感觉不够“炫”今天浏览Python资料的时候,意外发现了
- 今天看到同事参与小米的抢购,几经数个星期的尝试,终于抢到了一台小米电视……看了一下小米的抢购流程,似乎可以用程序可破。于是想写点东西玩玩(你
- 1. 使用os.system("cmd")特点是执行的时候程序会打出cmd在Linux上执行的信息。import oso
- 一、序言在分布式并发系统中,数据库与缓存数据一致性是一项富有挑战性的技术难点。本文将讨论数据库与缓存数据一致性问题,并提供通用的解决方案。假
- 报错一$ php artisan migrateIlluminate\Database\QueryException : could not
- 老声长谈,着是困惑很多人的问题,如果处理不好,都是乱码,说这些话并不是我对编码很精通,只是在这方面是得留神,自己总结了一点小经验(容易出现乱
- 1.基本结构 create OR REPLACE PROCEDURE存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBE
- (一)、tf.train.Saver()(1). tf.train.Saver() 是用来保存tensorflow训练模型的,默认保存全部参
- 1. 概述Promise对象是ES6提出的的异步编程的规范。说到异步编程,就不得不说说同步和异步这两个概念。从字面意思理解同步编程的话,似乎
- 导语:你不知道Python也能去除“背景”嘛?修饰图片中的头发是设计师最烦人的任务之一!要修得完美,
- 但是怎么找到是哪个SQL语句的执行时间过长呢?可以通过MySQL Slow Log来找,详解如下。 首先找到MySQL的配置文件my.cnf
- 1. SyntaxTIMESTAMPDIFF(unit,begin,end); 根据单位返回时间差,对于传入的begi
- 遇到问题nohup python flush.py &这样运行,生成了nohup.out文件,但是内容始终是空的,试了半天也不行。浪
- 句柄(handle)是C++程序设计中经常提及的一个术语。它并不是一种具体的、固定不变的数据类型或实体,而是代表了程序设计中的一个广义的概念
- 本文实例讲述了使用Flask-Cache缓存实现给Flask提速的方法。分享给大家供大家参考,具体如下:Django里面可以很方便的应用缓存
- MySQL Workbench 是一款专为 MySQL 设计的集成化桌面软件,也是下一代的可视化数据库设计、管理的工具,它同时有开源和商业化
- 写在最前面:带你从最简单的二叉树构造开始,深入理解二叉树的数据结构,ps:不会数据结构的程序猿只能是三流的首先,我们构造一个二叉树这是最标准
- DQLDQL:data Query language 数据查询语言格式:select[distinct] 字段1,字段2 from 表名 w
- 因为编写了一个Python程序,密集的操作了一个Mysql库,之前数据量不大时,没发现很慢,后来越来越慢,以为只是数据量大了的原因,但是后来
- tkinter提供了三个模块,可以创建弹出对话窗口:(使用必须单独导入模块)1.messagebox消息对话框示例:askokcanceli