1、查看系统中是否已将安装MySQL,如果安装了,需要卸载。
[root@chenguo etc]# rpm -qa|grep -i mysql
2、创建用户和组
[root@chenguo ~]# groupadd mysql
[root@chenguo ~]# useradd -r -g mysql -p root mysql
3、通过SSH将mysql安装包放到/usr/local目录下面,并进行解压操作。
[chenguo@chenguo ~]$ cd /usr/local/
[chenguo@chenguo local]$ tar -xvf mysql-5.7.-.el7.x86_64.rpm-bundle.tar
解压之后出现如下:

mysql-community-libs-compat-5.7.-.el7.x86_64.rpm
mysql-community-devel-5.7.-.el7.x86_64.rpm
mysql-community-minimal-debuginfo-5.7.-.el7.x86_64.rpm
mysql-community-libs-5.7.-.el7.x86_64.rpm
mysql-community-common-5.7.-.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.-.el7.x86_64.rpm
mysql-community-test-5.7.-.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.-.el7.x86_64.rpm
mysql-community-server-minimal-5.7.-.el7.x86_64.rpm
mysql-community-server-5.7.-.el7.x86_64.rpm
mysql-community-client-5.7.-.el7.x86_64.rpm
mysql-community-embedded-5.7.-.el7.x86_64.rpm
4、安装时候会提示与已经安装的RPM包有冲突,所以我们先卸载一些RPM包,要卸载哪些呢?我们要卸载的是包含有mariadb关键字的RPM包,执行命令:
[chenguo@chenguo local]$ rpm -qa|grep mariadb
mariadb-libs-5.5.-.el7_0.x86_64
使用命令卸载:
[chenguo@chenguo local]$ su -
[root@chenguo ~]# rpm -e mariadb-libs-5.5.-.el7_0.x86_64 --nodeps
或者使用:
[root@chenguo ~]# rpm -e --nodeps mariadb-libs-5.5.-.el7_0.x86_64 
5、进行MySQL包安装
[root@chenguo lib]# su -chenguo
[chenguo@chenguo lib]$ cd /usr/local/
[chenguo@chenguo local]$ rpm -ivh mysql-community-common-5.7.-.el7.x86_64.rpm
warning: mysql-community-common-5.7.-.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: can't create transaction lock on /var/lib/rpm/.rpm.lock (Permission denied)
出现错误,改用root用户进行安装:
[chenguo@chenguo local]$ su -
[root@chenguo local]# rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm
warning: mysql-community-common-5.7.16-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-common-5.7.16-1.e################################# [100%]
[root@chenguo local]# rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
warning: mysql-community-libs-5.7.16-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-libs-5.7.16-1.el7################################# [100%]
[root@chenguo local]# rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm
warning: mysql-community-client-5.7.16-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-client-5.7.16-1.er################################# [100%])
[root@chenguo local]# rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm
warning: mysql-community-server-5.7.16-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:mysql-community-server-5.7.16-1.e################################# [100%]
6、命令执行完毕后,mysql就安装完成,下面需要做的就是对mysql 进行初始化
[root@chenguo bin]# cd /usr/local/bin
[root@chenguo bin]# mysqld --initialize --user=mysql
[root@chenguo bin]# mysqld --initialize-insecure --user=mysql
--18T08::.910921Z [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
--18T08::.912342Z [ERROR] --initialize specified but the data directory has files in it. Aborting.
--18T08::.912368Z [ERROR] Aborting
解决办法:
进入/var/lib/目录中查看是否有mysql目录,有的话进行删除:
[root@chenguo bin]# cd /var/lib
[root@chenguo lib]# rm -rf mysql
[root@chenguo local]# cd /usr/local/bin/
[root@chenguo bin]# mysqld --initialize-insecure --user=mysql
7、启动mysql服务
[root@chenguo lib]# systemctl start mysqld
Job for mysqld.service failed. See 'systemctl status mysqld.service' and 'journalctl -xn' for details.
启动失败解决办法:
首先,查看/var/lib/mysql-files目录是否存在:
[root@chenguo lib]# ls -ld /var/lib/mysql-files
如果不显示任何信息就表示不存在,执行命令:
[root@chenguo lib]# mkdir /var/lib/mysql-files
这时,我们试着执行命令:
[root@chenguo lib]# systemctl start mysqld
如果还出现和下图一样的提示,我们执行另一条命令:
[root@chenguo lib]# chown -R mysql:mysql /var/lib/mysql
依然出错。
查看日志信息:
[root@chenguo ~]# journalctl |grep mysql
启动失败也有可能是SElinux导致,关闭SElinux功能:
vim /etc/selinux/config 修改文件永久关闭
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
SELINUX=permissive #修改此参数为permissive
查看系统日志:
[root@chenguo ~]# cd /var/log
[root@chenguo log]# cat mysqld.log
--22T02::.860176Z  [ERROR] InnoDB: Operating system error number  in a file operation.
--22T02::.860231Z [ERROR] InnoDB: The error means mysqld does not have the access rights to the directory.
--22T02::.860238Z [ERROR] InnoDB: os_file_get_status() failed on './ibdata1'. Can't determine file permissions
--22T02::.860246Z [ERROR] InnoDB: Plugin initialization aborted with error Generic error
--22T02::.471773Z [ERROR] Plugin 'InnoDB' init function returned error.
--22T02::.471974Z [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
--22T02::.472096Z [ERROR] Failed to initialize plugins.
--22T02::.472245Z [ERROR] Aborting
[root@chenguo bin]# ls -ld /usr/sbin/mysqld
-rwxr-xr-x. root root Sep : /usr/sbin/mysqld
[root@chenguo bin]# chown -R mysql:mysql /usr/sbin/mysqld
启动之后依然报错
还原权限:
[root@chenguo bin]# chown -R root:root /usr/sbin/mysqld
在重启了系统之后,使用:
[root@chenguo lib]# systemctl start mysqld
居然神奇的成功了,搞不懂。应该是最后的vim /etc/selinux/config 修改文件永久关闭,这个操作实现的
8、允许mysql远程访问
[root@chenguo ~]# mysql
mysql> use mysql;
mysql> select host, user from user;
mysql> update user set host = '%' where user = 'root';
mysql> select host, user from user;
9、退出mysql
mysql> exit
10、查看和修改数据库编码
[root@chenguo ~]# mysql
mysql> use mysql;
mysql> select Host,user from user where User='root';
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
rows in set (0.01 sec)
设置数据库的编码:
mysql> exit
[root@chenguo ~]# vi /etc/my.cnf
在其中加入如下内容:
character-set-server=utf8
collation-server=utf8_general_ci
如果要修改其他的属性可以继续添加:
character-set-server=utf8
collation-server=utf8_general_ci
max_connections=
table_open_cache=
thread_cache_size=
open_files_limit=
event_scheduler=ON group_concat_max_len=
拷贝my.cnf文件内容:
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html [mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at % of total RAM for dedicated server, else %.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
character-set-server=utf8
collation-server=utf8_general_ci
max_connections=
table_open_cache=
thread_cache_size=
open_files_limit=
event_scheduler=ON group_concat_max_len= # Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links= log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
修改配置后需要重启mysql:
[root@chenguo ~]# systemctl stop mysqld
[root@chenguo ~]# systemctl restart mysqld
进入mysql,查看修改内容是否成功:
[root@chenguo ~]# mysql
mysql> use mysql
mysql> SHOW VARIABLES LIKE 'event_scheduler';
mysql> SHOW VARIABLES LIKE 'group_concat_max_len';
PS:当切换mysql的时候出现错误:
[root@chenguo ~]# mysql
ERROR (): Access denied for user 'root'@'localhost' (using password: NO)
我的错误解决是直接将上面的第6步重新做一次
、命令执行完毕后,mysql就安装完成,下面需要做的就是对mysql 进行初始化
[root@chenguo bin]# cd /usr/local/bin
[root@chenguo bin]# mysqld --initialize --user=mysql
[root@chenguo bin]# mysqld --initialize-insecure --user=mysql
--18T08::.910921Z [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
--18T08::.912342Z [ERROR] --initialize specified but the data directory has files in it. Aborting.
--18T08::.912368Z [ERROR] Aborting
解决办法:
进入/var/lib/目录中查看是否有mysql目录,有的话进行删除:
[root@chenguo bin]# cd /var/lib
[root@chenguo lib]# rm -rf mysql
[root@chenguo local]# cd /usr/local/bin/
[root@chenguo bin]# mysqld --initialize-insecure --user=mysql
修改root用户密码的操作:
[root@chenguo ~]# mysql
mysql> use mysql
mysql> update user set password=PASSWORD('root') where User='root';
出现如下错误:
ERROR  (42S22): Unknown column 'password' in 'field list'
原因:mysql数据库中的user下已经没有password这个字段,而变成了authentication_string,因此修改语句为:
mysql> update user set authentication_string=PASSWORD('root') where User='root';
修改密码后,使用:
[root@chenguo ~]# systemctl stop mysqld
[root@chenguo ~]# systemctl restart mysqld
然后使用:
[root@chenguo ~]# mysql -u root -p
Enter password:
才能登录mysql。
 
 
 
 
 
 
 
 
 
 
 

RedHat7上安装MySQL5.7.16的更多相关文章

  1. 在 CentOS7 上安装 MySQL5.7

    在 CentOS7 上安装 MySQL5.7 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建 ...

  2. 在centos上安装mysql5.7的三种方法

    带OS信息的是已编译的二进制文件,不带OS信息的是源码包 mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz 二进制包 mysql-5.5.51.tar.gz 源码包 ...

  3. CentOS 6.9上安装mysql-5.6.36

    CentOS 6.9上安装mysql-5.6.36 1.准备数据存放的文件系统 新建一个逻辑卷,并将其挂载至特定目录即可.这里不再给出过程. 这里假设其逻辑卷的挂载目录为/data,而后需要创建/da ...

  4. CentOS6.7上安装Mysql5.7

    CentOS6.7上安装Mysql5.7 2017年07月22日 18:27:05 阅读数:564 环境的配置总是令人作呕,所以这次表明版本条件: 首先,这是一台新机器 其次,CentOS版本如下: ...

  5. 通过xshell在linux上安装mysql5.7(终极版)

    通过xshell在linux上安装mysql5.7(终极版) 0)通过xshell连接到远程服务器 1)彻底删除原来安装的mysql 首先查看:rpm -qa|grep -i mysql 删除操作(一 ...

  6. CentOS 6.9上安装mysql-5.6.37

    CentOS 6.9上安装mysql-5.6.37 1.准备数据存放的文件系统 新建一个逻辑卷,并将其挂载至特定目录即可.这里不再给出过程. 这里假设其逻辑卷的挂载目录为/data,而后需要创建/da ...

  7. CentOS7 离线安装mysql-5.7.16

    CentOS7 离线安装mysql-5.7.16 1 . 安装新版mysql前,需将系统自带的mariadb-lib卸载 [root@slave mytmp]# rpm -qa|grep mariad ...

  8. Win7安装MySQL-5.7.16过程

    1.在C盘新建MYSQL文件夹:2.将mysql-5.7.16-winx64拷贝到C:\MYSQL文件夹下,更名为mysql-5.7.16:3.在mysql-5.7.16目录下,建my.ini文件,内 ...

  9. linux上安装mysql5.6

    CentOS-6.6+MySQL-5.6 部署环境操作系统:CentOS-6.6-x86_64-bin-DVD1.isoMySQL 版本:mysql-5.6.26.tar.gz操作用户:root系统 ...

随机推荐

  1. 程序设计 之 C#实现《拼图游戏》 (下) 原理篇

    前言:在 http://www.cnblogs.com/labixiaohei/p/6698887.html 程序设计 之 C#实现<拼图游戏>(上),上传了各模块代码,而在本文中将详细剖 ...

  2. 用Rvm安装Ruby,Rails运行环境及常见错误解决方法

    一.安装Rvm 1.下载安装Rvm $ curl -L https://get.rvm.io | bash -s stable 此时可能出现错误:"gpg: 无法检查签名:找不到公钥&quo ...

  3. OC 常见面试题以及答案

    一. #improt 和include区别?@class? 1.include 主要用用来引用C 文件  import 主要引用OC 头文件  import 确保一个文件只能被导入一次  避免了交叉编 ...

  4. 打印Fibonacci数列方法汇总(前20项,每行5个)

    NO.1 迭代法 标签:通俗.易懂 思路:先打印第一项.再在循环里面执行fib=fib1+fib2,把fib2赋给fib1,把fib赋给fib2,每行5个可使用if函数(循环次数对5取余). #inc ...

  5. grunt构建一个项目

    准备工作:grunt基于node环境运行,所有先安装node.js 1.安装grunt,通过node的npm的包管理工具 >npm install grunt --save-dev 2.npm ...

  6. 在Ubuntu中使用JAVA与tomcat搭建web服务器

    一:材料 1.操作系统:ubuntu16.04 2.JAVA: jdk1.8.0 3.Tomcat:tomcat 8 4.域名:zhuandshao.cn 二:过程 1.安装java 1)在官网下载j ...

  7. 少年,是时候换种更优雅的方式部署你的php代码了

    让我们来回忆下上次你是怎么发布你的代码的: 1. 先把线上的代码用ftp备份下来 2. 上传修改了的文件 3. 测试一下功能是否正常 4. 网站500了,赶紧用备份替换回去 5. 替换错了/替换漏了 ...

  8. Java匿名内部类使用与示例

    首先说为什么有匿名类 两个原因(产生的使命) 1.简化代码编写 某种情况下,类只需要扩展一个方法,没必要为了一个方法单独去写一个子类,然后然后调用子类,此时需要匿名类 2.在不同的包内的类内调用类的p ...

  9. 磁盘IO:缓存IO与直接IO

    文件系统IO分为DirectIO和BufferIO,其中BufferIO也叫Normal IO. 1. 缓存IO 缓存I/O又被称作标准I/O,大多数文件系统的默认I/O操作都是缓存I/O.在Linu ...

  10. [ext4]09 磁盘布局 - superblock备份机制

    如果sparse_super特性flag被设置(即开启了sparse_super特性),那么super_block和组描述符的副本只会保存在group索引为0或3.5.7的整数幂. 如果没有设置spa ...