MySQL 5.7 Linux 安装

安装环境

  • 操作系统:ReadHat 6 x86_64
  • 数据库:Mysql 5.7

准备工作

检查是否安装已有Mysql 或 其依赖包,如有则需要卸载

rpm -qa | grep mysql
rpm -e 包名 --nodeps

安装

安装包列表

  • mysql-community-common-5.7.17-1.el6.x86_64.rpm
  • mysql-community-- libs-5.7.17-1.el6.x86_64.rpm
  • mysql-community-client-5.7.17-1.el6.x86_64.rpm
  • mysql-community-devel-5.7.17-1.el6.x86_64.rpm (可选)
  • mysql-community-server-5.7.17-1.el6.x86_64.rpm

安装命令

rpm -ivh mysql-community-common-5.7.17-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.17-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.17-1.el6.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.17-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.17-1.el6.x86_64.rpm

安装过程如图

MySQL 5.7 Linux 安装_第1张图片
mysql 安装

初始化

在 *nix 系统中,为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化

mysqld --initialize --user=mysql

如果是以 mysql 身份运行,则可以去掉 --user 选项。

--initialize 初始化的,会生成一个 root 账户密码,密码在log文件里
/var/log/mysqld.log 文件的最后一行就是root 密码,该密码被标记为过期,故首次登录后需要修改root的密码才能使用MySQL

基础配置

Mysql默认的端口是3306
修改MySQL端口及默认存储引擎
/etc/my.cnf 的[mysqld]下面添加或修改

port=6033
default-storage-engine=INNODB

启动停止MySQL

service mysqld status 检测mysql服务状态
service mysqld start
service mysqld stop

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Eoy!E!%X';

创建用户

默认root用户是不能远程登录的,也不提供远程功能。故需要创建一个用户来用于远程登录

create user trustmo identified by 'f76Ta,2G';

备注:
第一个:用户名
第二个:用户名密码

创建数据库及权限分配

  • 创建数据库并指定字符集
create database updb default charset utf8 collate utf8_bin;
  • 分配权限
grant all on updb.* to trustmo@"%" identified by 'f76Ta,2G' with grant option;
  • 刷新缓存使生效
flush privileges; 

遇到的问题及解决

表名查询不区分大小写

/etc/my.cnf 的[mysqld]下面添加或修改

lower_case_table_names=1

MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。

this is incompatible with sql_mode=only_full_group_by错误

  • 查询当前使用的sqlmode
select @@sql_mode;
结果如下:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

/etc/my.cnf 的[mysqld]下面添加或修改

sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION;
上面的查询结构集去掉 ONLY_FULL_GROUP_BY 选项

你可能感兴趣的:(MySQL 5.7 Linux 安装)