安装前的一些说明:

  检查平台兼容性:

  https://www.mysql.com/support/supportedplatforms/database.html  

  如果是在RedHat7版本安装的话,可以先卸载自带的MySQL版本。  

  通过以下命令查看系统是否预安装了MariaDB:

  shell> rpm -qa | grep mariadb

  通过以下命令删除预安装的MariaDB:

  shell> rpm -e --nodeps mariadb-server mariadb-libs

  验证包的完整性以及是否被篡改:

  shell> md5sum mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz

  或者

  shell> openssl md5 mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz

  对比该校验和与MySQL下载项页面下的校验和是否相同

  MySQL依赖libaio库,如果本地没有安装该库的话,后面的数据目录初始化及MySQL服务器启动会失败。

  安装libaio库:

  shell> yum search libaio  # search for info

  shell> yum install libaio # install library

  注:官档中只是安装了libaio包,在实际安装MySQL过程中,还需要安装libaio的开发文件包:libaio-devel

  shell> yum install libaio-devel

  补充:在RedHat 8中,默认没有安装/lib64/libtinfo.so。该文件是在MySQL二进制安装下使用MySQL 客户端时需要的。

  可以通过下面命令安装需要的包解决:

  shell> yum install ncurses-compat-libs

下面是安装过程的简单介绍:

  解压tar包到选择的位置。

  安装和使用MySQL二进制发行版,命令顺序如下:

  #创建MySQL用户和组,应该该用户仅用作所有者目的,没有登录要求,-r 和 -s /bin/fals 创建没有登陆权限的用户

  shell> groupadd mysql

  shell> useradd -r -g mysql -s /bin/false mysql

  shell> cd /usr/local

  shell> tar xvf /path/to/mysql-VERSION-OS.tar.xz

  shell> ln -s full-path-to-mysql-VERSION-OS mysql

  #避免在使用MySQL命令时需要输入路径名

  shell> export PATH=$PATH:/usr/local/mysql/bin

  shell> cd mysql

  shell> mkdir mysql-files

  shell> chown mysql:mysql mysql-files

  shell> chmod 750 mysql-files

  #MySQL 8 中系统变量lower_case_table_names只能在数据目录初始化时设置

  shell> bin/mysqld --initialize --user=mysql

  #在MySQL 8中ssl 和 rsa 相关文件在数据目录初始化时自动生成到数据目录下

  shell> bin/mysql_ssl_rsa_setup

  shell> bin/mysqld_safe --user=mysql &

  # 下面的命令是可选的

  shell> cp support-files/mysql.server /etc/init.d/mysql.server

  注:mysl-files是用作secure_file_priv系统变量的目录位置。

经过上面的步骤已经完成了MySQL的安装,下面是一些补充说明:

安装后设置:

  初始化数据目录

  mysqld 选项说明一下:

  --initialize 与 --initialize-insecure区别:前者为root@localhost生成一个随机密码,后者不会

  --user=mysql:如果数据目录初始化操作是root用户,这个选项的作用是将生成的数据目录下的文件所属用户设置为mysql

  --basedir:如果MySQL不能正确的表示MySQL安装位置

  --datadir:如果希望将数据目录安装到指定位置

  --init_file:数据库启动时,设置的一些操作,比如:ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';

  --innodb_data_home_dir:InnoDB 系统表空间目录位置

  --innodb_data_file_path:InnoDB 系统表空间属性设置

  --lower_case_table_names=1:数据库表名在文件系统中小写

  --innodb_log_group_home_dir:InnoDB 日志文件位置,可以将其设置为与数据库文件不同的存储设备上

  --innodb_log_file_size:设置InnoDB 日志文件大小

  --innodb_log_files_in_group:设置InnoDB 日志文件数量

  --skip_host_name:如果设置了,客户端连接只能使用IP地址,user@'hostname'不可使用

  mysqld的系统变量可以放在选项文件中,这样在做数据目录初始化时,可以这样做:

  vim /etc/my.cnf

    [mysqld]
  lower_case_table_names=1
  secure_file_priv=/usr/local/mysql/mysql-files
  basedir=/usr/local/mysql
  datadir=/usr/local/mysql/data

  mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=mysql

  注:--defaults-file参数要放在第一位,否则会提示该参数不能识别

  关于启动服务器的一些说明:

  shell> bin/mysqld_safe --user=mysql &

  使用YUM安装的MySQL数据库没有mysql_safe,该安装类型使用systemd管理数据库服务,比如,使用下面命令启MySQL:

  shell> systemctl start mysqld

  使用非特权用户运行MySQL服务器非常重要。如果使用root登录运行MySQL服务器,可以加 --user=mysql参数,如果是使用非特权用户登录,比如mysql用户,可以不加--user参数

  如果服务器启动时不能访问数据目录或者读mysql schema下的授权表,可能原因包括:

  没有做数据目录初始化,就启动MySQL服务器,因为在有些安装模式下数据目录初始化是自动完成的

  还有一种情况是,使用root用户运行数据目录初始化时,没有指定--user参数

  解决方案:删除数据目录,重新做初始化

  

测试MySQL服务器:

  MySQL启动后,可以做一些简单的测试,确认服务器是否满足需求

  测试服务器是否启动并且响应连接:

  shell> bin/mysqladmin version

  shell> bin/mysqladmin variables

  测试服务器是否可以正常启停:

  shell> mysqladmin shutdown

  shell> bin/mysqld_safe --user=mysql &

  测试是否可以从服务器检索信息:

  shell> bin/mysqlshow

  shell> bin/mysqlshow mysql

  mysql  -e "select * from mysql.user"

MySQL 8 通用二进制发行版安装的更多相关文章

  1. 多个Linux发行版安装ss服务端

    本文仅做技术探讨,请在遵守相应的法律法规的前提下使用. Centos 7一键安装脚本 简单快捷,随机生成密码,默认端口默认加密类型 bash <(curl -s http://morning.w ...

  2. MySQL 5.7 解压版 安装教程(图文详细)[Windows]

    最近在学习中用到了MySQL数据库,在安装过程中遇到了不少问题,在翻了大半天百度后,问题基本都解决了,所以写一篇MySQL 5.7 解压版的图文详细安装教程. 至于为什么我会选择解压版而不是安装版,一 ...

  3. MySQL 5.7.20绿色版安装详细图文教程

    MySQL 5.7.20绿色版安装详细图文教程 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下产品.这篇文章主要介绍了MySQL 5.7.20绿色版安装 ...

  4. 常见的LINUX发行版安装libiconv库方法

    今天编译程序,发现程序报错,如下 cannot find -liconv collect2: ld returned 1 exit status 或者 undefined reference to ` ...

  5. MySql 5.7.20 绿色版安装

    MySql 5.7.20 绿色版安装 一.MySql 安装 1.从官网下载绿色压缩包. 2.解压安装文件到指定目录 3.创建配置文件 my.ini 到解压文件的根目录,my.ini 配置文件如下,需将 ...

  6. MySQL使用通用二进制格式安装

      CentOS7安装MySQL的方法之通用二进制格式          

  7. mysql 5.7 win7 压缩版安装

    1.下载mysql压缩版并解压: 2.复制my-defualt.ini , 命名为my.ini; 3. 3.1 运行在下图bin目录下运行:mysqld --install   安装mysql服务: ...

  8. Sequel Pro for Mac(MySQL 数据库管理工具)破解版安装

    1.软件简介    Sequel Pro 是一款管理 Mysql 的工具,界面简洁易用. 2.功能特色 FULL MYSQL SUPPORT Sequel Pro is a fast, easy-to ...

  9. mysql 5.6 windows7 解压缩版安装的坑

    从官网下载了解压缩版的mysql ,解压缩后,配置好环境变量,运行安装命令,提示我 缺失ddl文件,然后百度,找到了一个windows 系统组件扫描安装缺失组件的程序,然后继续安装,遇到了 初始化密码 ...

随机推荐

  1. 踩坑ThinkPHP5之模型对象返回的数据集如何转为数组

    各位小伙伴们大家好,冷月今天在做项目的过程中呢,遇到了一个坑就是用tp5的模型操作数据库时,返回的是数据集而不是直接的数组.于是冷月就想办法如何将数据集转为数组.写下这篇博文,防止大家遇到这个坑时可以 ...

  2. pytorch-- Attention Mechanism

    1. paper: Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translat ...

  3. 自动化运维利器 Fabric

    Fabric 主要用在应用部署与系统管理等任务的自动化,简单轻量级,提供有丰富的 SSH 扩展接口.在 Fabric 1.x 版本中,它混杂了本地及远程两类功能:但自 Fabric 2.x 版本起,它 ...

  4. 编译安装nginx提示./configure: error: C compiler cc is not found

    1 编译安装nginx提示如下 ./configure: error: C compiler cc is not found 2 解决办法 yum -y install gcc gcc-c++ aut ...

  5. 小浩算法|一文让你学会如何用代码判断"24"点

    “24点”是一种数学游戏,正如象棋.围棋一样是一种人们喜闻乐见的娱乐活动.它始于何年何月已无从考究,但它以自己独具的数学魅力和丰富的内涵正逐渐被越来越多的人们所接受.今天就为大家分享一道关于“24点” ...

  6. lua学习之深入函数第二篇

    深入函数 2 非全局的函数 函数是第一类值,函数可以存储到全局变量,局部变量,table 字段中 lua 函数库中的大部分函数存储到 table 字段中 Lib = {} Lib.foo = func ...

  7. echarts 的 formatter用法

    前言:formatter格式化方法.使用formatter调用自定义的数据,把内容通过处理让变成我们想要的样子. 比如,echarts数据显示是这样的(bug:部分内容被隐藏掉了,显示太长,不美观) ...

  8. ViewPager调用notifyDataSetChanged() 刷新问题解决方案

    一.问题来由 ViewPager控件很大程度上满足了开发者开发页面左右移动切换的功能,使用非常方便.但是使用中发现,在删除或者修改数据的时候,PagerAdapter无法像BaseAdapter那样仅 ...

  9. Android5.0和Android6.0适配

    gradle配置项 compileSdkVersion 用哪个 Android SDK 版本编译你的应用.因此我们强烈推荐总是使用最新的 SDK 进行编译.在现有代码上使用新的编译检查可以获得很多好处 ...

  10. mysql删除索引

    删除索引 删除索引可以使用ALTER TABLE或DROP INDEX语句来实现.DROP INDEX可以在ALTER TABLE内部作为一条语句处理,其格式如下: drop index index_ ...