MySQL8通⽤⼆进制发⾏版安装
安装前的⼀些说明:
  检查平台兼容性:
  如果是在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_
  或者
  shell> openssl md5 mysql-8.0.18-linux-glibc2.12-x86_
  对⽐该校验和与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/
  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
mysql下载libs包的网址
  --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/myf
    [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/myf --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"

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。