MySQL 5.6 rpm安装方法和碰见的问题

前几天尝试装了MySQL 5.7,《MySQL的rpm和源码两种安装操作》,用了rpm和源码编译两种方法,由于项目需要,这次使用MySQL 5.6版本,rpm安装方法,记录了一些安装过程的问题。

1. 卸载机器上自带的MySQL包

检索已安装组件,

rpm -qa | grep mysql mysql-libs-5.1.61-4.el6.x86_64

卸载已安装组件,使用--nodeps则强制忽略依赖,

rpm -e mysql-libs-5.1.61-4.el6.x86_64 --nodeps

2. 安装MySQL 5.7 rpm包

注意,因为包之间有彼此依赖,所以安装有顺序要求,

rpm -ivh MySQL-server-5.6.31-1.linux_glibc2.5.x86_64.rpm rpm -ivh MySQL-devel-5.6.31-1.linux_glibc2.5.x86_64.rpm rpm -ivh MySQL-client-5.6.31-1.linux_glibc2.5.x86_64.rpm

3. 初始化数据库,启动和配置

安装完成,需要初始化数据库,

mysql_install_db

复制配置文件,

cp /usr/share/mysql/my-default.cnf /etc/my.cnf

启动MySQL服务,

service mysql start

设置开机启动,

chkconfig mysql on

检索设置生效,

chkconfig --list | grep mysql mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off

4. 重置密码

上面初始化操作,记录了root账户的临时密码,存储于文件/root/.mysql_secret中,

A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER ! You will find that password in '/root/.mysql_secret'. You must change that password on your first connect, no other statement but 'SET PASSWORD' will be accepted. See the manual for the semantics of the 'password expired' flag.

/root/.mysql_secret文件,

# The random password set for the root user at Mon Aug 28 09:40:09 2017 (local time): pcqEmPanlf3emxWW

登陆数据库,直接执行set password="新密码",会报错误,要求使用41位的十六进制数字才可以,

mysql> set password="My@sql"; ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number

一种方法是可以从另一个库,执行select password("新密码")语句,得到对应的十六进制数字,

mysql> select password('My@sql'); +-------------------------------------------+ | password('My@sql')                        | +-------------------------------------------+ | *02ED29277F2482ED4AAE65574FC9940A4895D6D7 | +-------------------------------------------+ 1 row in set, 1 warning (0.01 sec)

再用此十六进制设置,

mysql> set password='*02ED29277F2482ED4AAE65574FC9940A4895D6D7'; Query OK, 0 rows affected (0.00 sec)

可以执行flush privileges

mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)

这是官方文档,对于flush privileges解释,

引用一段网络描述语,

flush privileges命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。

另一种设置密码的方法,就是使用PASSWORD函数

mysql> set password=PASSWORD('My@sql'); Query OK, 0 rows affected (0.00 sec)

如下是针对PASSWORD函数的介绍,

可以看一下,设置的用户密码信息,

mysql> use mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select host, user, password from user; +-----------------+------+-------------------------------------------+ | host            | user | password                                  | +-----------------+------+-------------------------------------------+ | localhost       | root | *02ED29277F2482ED4AAE65574FC9940A4895D6D7 | | vm-100-app  | root | *DB2464B7F3447DFCC3CACE1A0FD19BFC6101339C | | 127.0.0.1       | root | *DB2464B7F3447DFCC3CACE1A0FD19BFC6101339C | | ::1                  | root | *DB2464B7F3447DFCC3CACE1A0FD19BFC6101339C | +-----------------+------+-------------------------------------------+ 4 rows in set (0.00 sec)

5. 允许远程登录

默认情况下,用户只能使用本地登陆,可以设置允许远程登录,

mysql> update user set host='%' where user='root' and host='hostloacl'; Query OK, 0 rows affected (0.00 sec) Rows matched: 0  Changed: 0  Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)

6. 安装默认路径

数据库目录:/var/lib/mysql/

配置文件目录:/usr/share/mysql

相关命令目录:/usr/bin

启动脚本:/etc/init.d/mysql

碰见的几个问题,

(1) 登陆提示错误

bash-4.1# mysql -uroot -p Enter password: ERROR 1045 (28000): Unknown error 1045

发现是用户密码错误,提示了上述报错信息。

(2) my.cnf配置文件如下,

[mysqld] port=3306 character_set_server=utf8 character_set_client=utf8 collation-server=utf8_general_ci lower_case_table_names=1 max_connections=1000 default-character-set=utf8 [client] password=My@sql port=3306 default-character-set=utf8

重启服务时,报错,

service mysql restartShutting down MySQL.. SUCCESS! Starting MySQL... ERROR! The server quit without updating PID file (/var/lib/mysql/vm-kvm11852-app.pid).

检索vm-kvm11852-app.err文件,

... 2017-08-29 16:02:01 23566 [ERROR] /usr/sbin/mysqld: unknown variable 'default-character-set=utf8' 2017-08-29 16:02:01 23566 [ERROR] Aborting ...

提示无法识别参数值default-character-set=utf8,再次看一下配置文件,确实包含了default-character-set=utf8,将其注释,

[mysqld] port=3306 character_set_server=utf8 character_set_client=utf8 collation-server=utf8_general_ci lower_case_table_names=1 max_connections=1000 #default-character-set=utf8

重启服务正常,

[root@vm-kvm11852-app mysql]# service mysql restart ERROR! MySQL server PID file could not be found! Starting MySQL. SUCCESS!

针对default-character-set=utf8,不同版本,是有所不同的,

原来在5.1版本时,为了解决中文乱码问题设置默认字符集为utf8时,在my.ini内的[mysql]和[mysqld]项中都是写:default-character-set=utf8 到了5.5版本, [mysql]项内可以这么写, [mysqld]项内不能再这么写了,而是必须写:character_set_server=utf8,否则在启动MySQL服务时会有1067错误

(3) 可以使用verbose参数,检索mysqld命令帮助,

mysqld --defaults-file=/opt/mysql/my.cnf --user=mysql --verbose --help ... Usage: mysqld [OPTIONS] ... --print-defaults        Print the program argument list and exit. --no-defaults           Don't read default options from any option file, except for login file. --defaults-file=#       Only read default options from the given file #. ...

如果您觉得此篇文章对您有帮助,欢迎关注微信公众号:bisal的个人杂货铺,您的支持是对我最大的鼓励!共同学习,共同进步:)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Fred Liang

数据平台的历史进程

我们一直在追赶续期的迭代。在过去十年中,我们看到了数据处理技术突破性技术进步后的突破性进展,并且在2015年我们已经到了Spark的时代。

15910
来自专栏编程微刊

小程序登录按钮遮罩浮层效果

2:在弹出的授权框里,拒绝授权按钮的时候,界面的数据没有办法加载出来,允许授权的时候,界面就能渲染从后端拿过来的数据

29220
来自专栏weixuqin 的专栏

leecode刷题(1)-- 删除排序数组中的重复项

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(...

10530
来自专栏Fred Liang

Batch、MPP、Cube 和 Hadoop

Batch:批处理 MPP:大规模并行处理 Cube:多维立方体 Hadoop:是一款支持数据密集型分布式应用程序

61530
来自专栏微信公众号:Java团长

MySQL数据库开发常见问题及几点优化!

来源:www.cnblogs.com/cyfonly/p/5616536.html

15650
来自专栏java工会

ajax的jquery写法和原生写法

Ajax被认为是(Asynchronous(异步) JavaScript And Xml的缩写)。现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做A...

32930
来自专栏大数据文摘

业界 | 数据科学家“恐怖故事”

文字语音转换圈内流传这么一则真假未知的故事:一个研究者花了数月(甚至数年)调整他/她的语音生成模型,使其语音样本听起来效果非常好。最后他们发现,他们从头到尾都误...

14630
来自专栏DevOps时代的专栏

中台到底长啥样?| 白话中台战略

在上篇《白话中台战略开篇:中台是个什么鬼》中,我试着依据自己的经验和理解,阐述了中台产生的原因以及最终建设目的,可能会过于抽象,大家听得还是云里雾里,本文就试图...

5.3K20
来自专栏http://www.cnblogs.com

sqlalchemy ORM

orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使...

10320
来自专栏编程微刊

小程序云开发五:从云数据库读取数据

1:接着昨天的《小程序云开发四:向云数据库插入一条数据》,今天要写的是读取那条插入的数据。

2.3K30

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励