参考:
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
http://www.jianshu.com/p/7cccdaa2d177
http://www.linuxidc.com/Linux/2016-09/135288.htm
最近搞了台阿里云服务器,搭载的是CentOS 7系统,这里记录下MysqL5.7的安装流程
查看CentOS 7下的所以目录
参考:
https://teakki.com/p/57dbbbc59128129803f3aa47
http://blog.csdn.net/longxu0872/article/details/71168340
执行命令cd /,跳转到根目录,再执行ls -l命令:
/boot:系统引导文件,内核
/bin:用户的基本命令
/dev:设备文件
/etc:配置文件
/home:用户家目录
/root:root用户家目录
/sbin:管理类的基本命令
/tmp:临时文件存放地
/usr:共享的只读数据
/mnt:临时文件系统挂载点
/media:移动设备挂载点
/opt:第三方应用程序的安装位置
/srv:系统运行的服务用到的数据
/var:变化的数据文件
/proc:用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息的虚拟文件系统
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等
Uvh作用
linux 安装包的时候使用 Uvh解释
U: 升级
v,h:显示详细信息和安装进度
i:安装
U可以保证同一个包只有一个版本存在,i会安装同一个包的多个版本
rpm介绍
rpm各个部分的意义:rpm包软件名称.主版本号.次版本号.源程序发行号-rpm包的发行号.主机平台.cup架构
例如:glibc-common-2.6.32-358.el6.i386
el5 和 el6 是RedHat Linux的两个版本,EL = Enterprise Linux
这个rpm包名里面包含el6,应该指示这个glibc的包适用于RedHat EL6的版本
CentOS(Community Enterprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,所以这个rpm应该可以用于centos
使用 uname -a命令可以查看el版本(uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)
uname -a
查看出当前CentOS 7 主机平台为el7版本
wget命令
wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。
来自: http://man.linuxde.net/wget
查看MysqL Yum存储库
MysqL Yum存储库提供用于在Linux平台上安装MysqL服务器,客户端和其他组件的RPM(RPM软件包管理器)软件包。这些软件包还可以升级和替换从Linux发行版本的本机软件仓库安装的任何第三方MysqL软件包。
在MysqL官网中下载Yum源rpm安装包:http://dev.mysql.com/downloads/repo/yum/
这里知道选什么了吧,当然是el7啦(MysqL57-community-release-el7-11.noarch.rpm)
A Quick Guide to Using the MySQL Yum Repository(使用MySQL Yum存储库的快速指南)
MysqL安装步骤
1.添加MysqL Yum存储库
a.转到MysqL Yum存储库的下载页面
网址为 http://dev.mysql.com/downloads/repo/yum/
b.选择并下载您的平台的发行包
使用以下命令下载:
shell> wget https://dev.MysqL.com/get/MysqL57-community-release-el7-11.noarch.rpm
下载已经完成,我们使用ls -l查看下当前目录
c.使用以下命令安装下载的发行包
例如,对于基于EL7的系统的版本,命令是:
shell> sudo rpm -Uvh MysqL57-community-release-el7-11.noarch.rpm
2.选择版本系列
shell> more /etc/yum.repos.d/MysqL-community.repo
查看文件,可以看到当前准备安装的是5.7版本
3.安装MysqL
通过以下命令安装MysqL:
shell> sudo yum install MysqL-community-server
4.启动MysqL服务器
a.使用以下命令启动MysqL服务器
基于EL7的平台,这是首选命令:
shell> sudo systemctl start MysqLd.service
b.使用以下命令检查MysqL服务器的状态:
基于EL7的平台,这是首选命令:
shell> sudo systemctl status MysqLd.service
使用root登录MysqL
问题:
[root@xxx /]# MysqL -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
解决方案:
在安装MysqL的时候,会随机生成root的密码, 记得要看安装log文件
[root@xxx /]# cat /var/log/MysqLd.log |grep password
2017-11-02T02:55:12.307984Z 1 [Note] A temporary password is generated for root@localhost:,>HZ*d7yP+5W
2017-11-02T03:01:15.789598Z 3 [Note] Access denied for user 'root'@'localhost' (using password: YES)
2017-11-02T03:01:42.172342Z 4 [Note] Access denied for user 'root'@'localhost' (using password: YES)
2017-11-02T03:01:59.269867Z 5 [Note] Access denied for user 'root'@'localhost' (using password: NO)
2017-11-02T04:23:39.602270Z 6 [Note] Access denied for user 'root'@'localhost' (using password: NO)
2017-11-02T04:25:01.125469Z 7 [Note] Access denied for user 'root'@'localhost' (using password: NO)
2017-11-02T04:25:54.567185Z 8 [Note] Access denied for user 'root'@'localhost' (using password: NO)
2017-11-02T04:29:56.571195Z 9 [Note] Access denied for user 'root'@'localhost' (using password: NO)
2017-11-02T04:34:50.933040Z 10 [Note] Access denied for user 'root'@'localhost' (using password: NO)
2017-11-02T04:35:22.433484Z 11 [Note] Access denied for user 'root'@'localhost' (using password: NO)
2017-11-02T04:37:29.847188Z 0 [Note] Shutting down plugin 'validate_password'
2017-11-02T04:37:31.560031Z 0 [Note] Shutting down plugin 'sha256_password'
2017-11-02T04:37:31.560033Z 0 [Note] Shutting down plugin 'MysqL_native_password'
[root@xxx /]#
可以看到随机生成的密码是,>HZ*d7yP+5W
使用命令MysqL -u root -p,之后 输入密码即可
你必须重新设置密码才能执行语句
MysqL> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
1、修改/etc/my.cnf,在 [MysqLd] 小节下添加一行:skip-grant-tables=1(这一行配置让 MysqLd 启动时不对密码进行验证
)
2、重启MysqLd 服务:systemctl restart MysqLd
3、使用 root 用户登录到 MysqL:MysqL -uroot
4、切换到MysqL数据库,更新 user 表:
use MysqL
update user set authentication_string = password(‘123456’),password_expired = ‘N’,password_last_changed = now() where user = ‘root’;
5、退出 MysqL,编辑 /etc/my.cnf 文件,删除 skip-grant-tables=1的内容
6、重启MysqLd 服务,再用新密码登录即可
MysqL -uroot -p
在之前的版本中,密码字段的字段名是 password,5.7版本改为了 authentication_string
修改编码
参考 :http://www.jb51.cc/article/p-xtcnstum-bpq.html
在 /etc/my.cnf 中设置默认的编码
创建数据库和用户
CREATE DATABASE <datebasename> CHARACTER SET utf8;
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
GRANT privileges ON databasename.tablename TO 'username'@'host';
SHOW GRANTS FOR 'username'@'host';
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
DROP USER 'username'@'host';
待续…