转至: 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 服务的命令:

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

linux mysql5.7.11_在Linux中以命令行方式安装 MySQL 5.7.11 for Linux Generic 二进制版本相关推荐

  1. mysql5.7.11 linux_CentOS 7 中以命令行方式安装 MySQL 5.7.11 for Linux Generic 二进制版本教程详解...

    MySQL 目前的最新版本是 5.7.11,在 Linux 下提供特定发行版安装包(如 .rpm)以及二进制通用版安装包(.tar.gz).一般情况下,很多项目都倾向于采用二进制通用安装包形式来进行安 ...

  2. windows winrar 指令_windows中winrar命令行方式使用

    在Windows系统中的文件压缩工具winrar功能强大,虽然我们都习惯于用gui的winrar,但是 它也能在命令行方式下面使用,这尤其在企图让winrar批量自动压缩解压缩的时候有用. 它自带的帮 ...

  3. 在linux下怎么安装mysql,手把手教你在Linux系统下安装MySQL

    在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB. 1. 下载并安装MySQL官方的 Yum R ...

  4. mysql隐藏密码_MySQL在Linux系统中隐藏命令行中的密码的方法

    在命令行中输入命令并不是一个好主意,会造成安全问题.但是如果你决定去写一个应用,而这个应用需要在命令行中使用密码或者其他敏感信息.那么,你能通过以下方法禁止系统的其他用户轻易的看到这些敏感数据 呢?, ...

  5. linux安装virtualbox命令,在Linux中从命令行查找Virtualbox Version的方法

    在我的Ubuntu无头服务器上使用Virtualbox时,我需要找到Virtualbox的版本,如果是GUI,我可以通过导航到Virtualbox->About->Help轻松找到它,但我 ...

  6. 在linux中安装oracle中文包,在Linux命令行下安装Oracle 10g

    Oracle 10g支持在命令行下用静默模式(Silent)安装,给那些没有安装图形界面的Linux系统提供了极大的便利. 下面以Fedora Core 6为例,介绍在命令行下安装OracleOrac ...

  7. linux命令 socket,如何从linux中的命令行向socket.io websocket发送消息?

    是否可以使用linux中的命令行向我的localhost服务器(节点)发送socket.io消息?我不确定这是否可行--从稀缺的谷歌搜索结果来看,我猜这不可能或不复杂-- 我的socket.io代码如 ...

  8. Linux系统中常用命令行命令、快捷键、创建长路径的快捷键

    Linux系统中常用命令行命令.快捷键.创建长路径的快捷键 1.常用Linux命令: 1.1 文件和目录: cd /home 进入 '/home' 目录 cd - 返回上一级目录 cd -/- 返回上 ...

  9. Linux 指令:怎样从文件中找到重复行?

    Linux 指令:怎样从文件中找到重复行? 1.例如有文件test1.txt,内容如下: Hello world. 122 122 343434 222222 执行uniq -d 可以找到重复行: 1 ...

最新文章

  1. C++从键盘输入二维数组
  2. Minimax 和 Alpha-beta 剪枝算法简介,及以此实现的井字棋游戏(Tic-tac-toe)
  3. 如何优化网站结构才促使网站排名“节节高”?
  4. BUUCTF(pwn)护网杯_2018_gettingstart
  5. sklearn常见命令和官方文档汇总
  6. mysql query cache 关闭_为什么要关闭MySQL query cache-Fun言
  7. STL(四)——map映射
  8. .net runtime占用cpu_追踪将服务器CPU耗光的凶手!
  9. Cadence Virtuoso IC617的启动和新建工程
  10. php基础-php基本语法
  11. 一款好用的三维贴图纹理制作软件:Substance Designer Mac 内附安装教程
  12. imagej得到灰度图数据_【原创】imagej使用达人指南,分享给大家!
  13. latex中页眉怎么去掉_latex 去掉页眉
  14. XILINX FPGA最小逻辑单元CLBs, Slices和LUT区别
  15. 我所学过看过的计算机语言入门书籍推荐
  16. 编程游戏开发【飞翔的小鸟】
  17. python安装在什么地方_python的第三方库库安装在哪里了
  18. 磨金石教育摄影技能干货分享|那些酷炫的照片是怎么拍出来的?
  19. linux缺页异常,操作系统缺页异常
  20. Java核心类库之(类加载器、反射机制、模块化)

热门文章

  1. lisp中怎样调取图形_CAD的lisp程序已加载,怎样绘图?
  2. 8cm等于多少像素_「前端剑指offer第5期」物理像素、逻辑像素、CSS像素、PPI、设备像素比是什么...
  3. mac下使用sshpass实现ssh记住密码
  4. Python正则表达式如何进行字符串替换
  5. uni-app自定义tabBar;uni-app小程序自定义tabBar;uni-app小程序修改中间tabBar导航栏大小;uni-app中间导航栏凸起;uni-app修改底部导航栏
  6. autoconf.mk详析
  7. [react] childContextTypes是什么?它有什么用?
  8. 重学java基础第二十五课:数据类型
  9. 前端学习(3248):react的生命周期getSnapBeforeUpdate举例
  10. [css] 用css实现一个等腰三角形的小图标