在Linux中以命令行方式安装 MySQL 5.7.11 for Linux Generic 二进制版本

本文主要是介绍在Linux中以命令行方式安装 MySQL 5.7.11 for Linux Generic 二进制版本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转至: http://www.cnblogs.com/cyberniuniu/p/5273961.html

MySQL 目前的最新版本是 5.7.11,在 Linux 下提供特定发行版安装包(如 .rpm)以及二进制通用版安装包(.tar.gz)。一般情况下,很多项目都倾向于采用二进制通用安装包形式来进行安装配置,自定义非常方便。但在安装过程中发现,其实官方提供的安装说明文件太过简单,而且里面的参数还有问题,依照执行后,mysql 服务启动报错,查找了一些资料并反复试验后,自己总结出一套切实可行的安装配置流程,具体如下:

1、下载 MySQL for Linux Generic 二进制版本安装包(.tar.gz),这里以 5.7.11 版本为例。

2、我一般习惯于将 MySQL 安装到 /opt 目录下,所以我将 MySQL 安装包文件复制到 /opt 目录下,切换为 root 账号后执行以下命令:

# tar -zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz
# ln -s mysql-5.7.11-linux-glibc2.5-x86_64 mysql 
# cd mysql

建立一个 mysql 的软连接,是为了以后方便配置与操作。

3、5.7.11 版本的通用二进制安装包经解压后得到的 MySQL 目录,内部并未包含数据文件存放的目录,所以需要单独再创建一个子目录用于存放数据文件,比如取名为 data,在第二步命令后(确保在 /opt/mysql 目录下),继续执行如下命令:

复制代码
# groupadd mysql
# useradd -r -g mysql -s /bin/false mysql
# mkdir data
# chown -R root:root .
# bin/mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
# bin/mysql_ssl_rsa_setup --datadir=/opt/mysql/data
复制代码

这里特别说明一下,根据官方文档说法,从 5.7.6 版本开始,MySQL 初始化使用 mysqld --initialize 命令,不再使用 mysql_install_db 命令了。但是官方文档给出的 mysqld --initialize 命令并没有给出 --basedir 以及 --datadir 参数,因为它默认使用 /etc/my.cnf 配置文件。有些 Linux 发行版在安装过程中可能会默认生成这个 mysql 配置文件并保存在 /etc 目录下,而默认配置文件中的 basedir、datadir 是被注释的,没有实际内容,这样 mysqld 实际上还是不知道当前的 basedir、datadir 具体是哪个目录。所以这里就通过命令行参数指定我们的自定义目录。包括 mysql_ssl_rsa_setup 命令也要指定 datadir 目录,因为数据库需要的密钥文件也都和数据文件保存在一起,都位于 datadir 目录内。

4、上述工作完成后,先不慌启动数据库服务,这时还要创建 MySQL 服务的配置文件 my.cnf。这个文件可以从 /opt/mysql/support-files 子目录下找到一个叫 my-default.cnf 的配置样例文件,然后复制一个出来,改名为 my.cnf 并放到 /opt/mysql 下即可。根据 MySQL 的规则,它的配置文件必须以 my.cnf 命名,读取的顺序是先尝试读取 /etc/my.cnf,如果不存在则再读取 basedir 目录下的 my.cnf,如果系统环境变量没有 basedir,则尝试读取服务启动所在当前目录下的 my.cnf,这里就是 /opt/mysql/my.cnf 这种情况,如果还是不存在,则读取当前用户家目录下的 .mysql/my.cnf(需要看官方文档确认一下,记不清了)。所以,我们这里只需保证在 /opt/mysql 下有一个 my.cnf,修改其中的内容为如下:

basedir = /opt/mysql
datadir = /opt/mysql/data
log-error = /var/log/mysql-error.log

其余的不变。根据官方文档,log-error 用来指定服务启动后的运行信息日志文件路径,运行信息包括 Notice、Error 等类型的日志。

5、配置文件修改保存好后,就可以启动服务了,确保当前目录为 /opt/mysql,然后运行以下命令:

# bin/msyqld_safe --user=mysql &

这时服务就可以正常启动了。你还可以通过命令 netstat -na -t 查看 MySQL 服务的端口 3306 是否已经处在监听状态,如果是,则表示服务启动正常。当然,你也可以查看日志文件的内容来确定,我们这里因为在已在配置文件中指定日志文件为 /var/log/mysql-error.log,所以查看该文件即可。

6、在本机登录 MySQL 服务,从 5.7.10 版本开始不允许 root 空密码登录了。其实在执行 mysqld --initialize 后系统就会为 root 生成一个初始化密码,并在屏幕标准输出时显示出来,这个要记住!用这个密码第一次登录后,才能再修改密码,这里假定系统生成的初始化密码为 xxxxxx,命令如下:

# bin/mysql --user=root --password=xxxxxx

这样就可以登录 MySQL 服务器了。

7、登录以后,系统要求必须修改 root 账号的密码,MySQL 命令如下:

mysql> set password=password('1234');

这样就可以把 root 账号改为 1234 了。

8、在 Linux 下为了安全,默认是不允许 MySQL 服务器本机以外的机器访问 MySQL 数据库服务的,因此需要重新授权 root 账号。方便其他机器远程访问 MySQL 服务器,MySQL 命令如下:

mysql> grant all privileges on *.* to root@'%' identified by '1234';
mysql> flush privileges;

这样就可以允许从其他机器用 root 账号远程登录 MySQL 服务器了,可以用下面的 MySQL 命令来验证一下:

复制代码
mysql> use mysql;
mysql> select host,user from user;
+-----------+-----------+
| host      | user      |
+-----------+-----------+
| %         | root      |
| localhost | mysql.sys |
| localhost | root      |
+-----------+-----------+
3 rows in set (0.00 sec)
复制代码

证明系统表 user 中已经增加了一条关于 root 远程登录的记录。

9、补充一下如何停止 mysql 服务的命令:

 

1
# mysqladmin --user=root --password shutdown

 

这里 root 是 mysql 数据库的 root,并不是操作系统的账号,这点不要搞混了,该命令会提示输入 mysql root 的密码,正确的话就会停止 mysql 服务了。  

 

这篇关于在Linux中以命令行方式安装 MySQL 5.7.11 for Linux Generic 二进制版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1042339

相关文章

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

Win安装MySQL8全过程

《Win安装MySQL8全过程》:本文主要介绍Win安装MySQL8全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Win安装mysql81、下载MySQL2、解压文件3、新建文件夹data,用于保存数据库数据文件4、在mysql根目录下新建文件my.ini

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

Spring Boot读取配置文件的五种方式小结

《SpringBoot读取配置文件的五种方式小结》SpringBoot提供了灵活多样的方式来读取配置文件,这篇文章为大家介绍了5种常见的读取方式,文中的示例代码简洁易懂,大家可以根据自己的需要进... 目录1. 配置文件位置与加载顺序2. 读取配置文件的方式汇总方式一:使用 @Value 注解读取配置方式二

MySQL重复数据处理的七种高效方法

《MySQL重复数据处理的七种高效方法》你是不是也曾遇到过这样的烦恼:明明系统测试时一切正常,上线后却频频出现重复数据,大批量导数据时,总有那么几条不听话的记录导致整个事务莫名回滚,今天,我就跟大家分... 目录1. 重复数据插入问题分析1.1 问题本质1.2 常见场景图2. 基础解决方案:使用异常捕获3.