zoukankan      html  css  js  c++  java
  • 阿里云服务器CentOS7.x安装MySql5.7.2版本

    Centos7.x上安装mysql5.7.2压缩版

    安装手册 

     说明:本文主要描述在centos7上安装mysql5.7.2。文中出现的/data/mysql 为本次安装mysql的目录,可以根据自己需要进行修改。最好将系统/etc/selinux/config文件中设置SELINUX=disabled

     

    SecureCRT.exe工具字体、编码utf-8设置:选项—》会话选项

    1. 压缩版安装
      1. 查看操作系统版本

    # cat /etc/redhat-release

     

      1. 安装前的环境准备 

    查看是否安装过mysql

    首先检测Linux操作系统中是否安装了MySQL:

    # rpm -qa | grep -i mysql

    卸载安装包

    如果有信息出现,则进行删除,命令如下:

    # rpm -e --nodeps 包名

    删除老版本mysql的开发头文件和库

    # rpm -e --nodeps 包名

    注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除:

    # rm -f /etc/my.cnf

    # rm -fr /var/lib/mysql

    删除完成后,才能进行安装,否则安装会出错。

    查看旧的mysql安装目录

    # whereis mysql

    删除旧的安装目录

    # rm -rf 目录

    新建目录

    # cd /

    # mkdir data

    # cd data/

      1. 安装过程

    安装包准备

    安装前先准备好压缩安装包或者到mysq官网下载即可,将安装报上传至/data/目录下后解压

    # cd /data/

     

    # tar -zxvf 安装包 -C /data/

     

    目录名太长了,重命名为mysql

    # mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql

     

    mysql下面新建目录data

     

     

      1. 查看mysql用户和组 如果存在,需要删除怎执行以下步骤

    查看mysql用户或组是否存在

    # id mysql

     

    如需删除用户和组,执行下列操作

    # groupdel mysql

    # userdel -f mysql

    不行就进入 vi /etc/grpup 找到mysql 在其前面加上 #

    如下,说明没有用户了

      1. 添加mysql用户组和用户,并且将mysql用户和mysql组关联

    创建mysql组

    # groupadd mysql

    查看是否创建成功

    # cat /etc/group | grep mysql

    mysql:x:500:

     

    创建mysql用户

    # useradd -r -g mysql mysql 

    查看是否创建成功

    # cat /etc/passwd | grep mysql

     

     

    给mysql用户设置密码为:xxxxxx(你自己的)

    # passwd mysql

      1. 给mysql授权,以便能够读写以及执行必要的文件

    # chown -R mysql:mysql /data/mysql

    # chmod -R 775 /data/mysql

      1. 进入mysql/support-files文件夹的内容,查看是否有my-default.cnf配置文件,如果没有默认的配置文件,需要手动创建一个my-default.cnf配置文件

    # cd /data/mysql/support-files/

    # ll

      1. my-default.cnf配置文件内容可直接复制下面内容:

    #vi my-default.cnf

    [client]

    port = 3306

    socket = /tmp/mysql.sock

    [mysqld]

    basedir = /data/mysql

    datadir = /data/mysql/data

    bind-address = 0.0.0.0

    port = 3306

    socket = /tmp/mysql.sock

    skip-external-locking

    key_buffer_size = 128M

    max_allowed_packet = 1M

    table_open_cache = 256

    sort_buffer_size = 1M

    read_buffer_size = 1M

    read_rnd_buffer_size = 2M

    myisam_sort_buffer_size = 8M

    thread_cache_size = 8

    query_cache_size= 16M

    max_connections = 213

    wait_timeout = 31536000

    interactive_timeout = 30

    max_connect_errors = 9

    long_query_time = 1

    tmp_table_size = 16M

    #log-bin=mysql-bin

    #binlog_format=mixed

    #server-id = 1

    lower_case_table_names = 1

    [mysqldump]

    quick

    max_allowed_packet = 8M

    [mysql]

    no-auto-rehash

    [myisamchk]

    key_buffer_size = 12M

    sort_buffer_size = 1M

    read_buffer = 1M

    write_buffer = 1M

    [mysqlhotcopy]

    interactive-timeout

      1. 查看my-default.cnf保存到support-files文件夹中,

     

      1. 重新授权

    # chown -R mysql:mysql /data/mysql

    # chmod -R 775 /data/mysql

     

      1. 复制support-files文件下的my-default.cnf和mysql.server,如下:

    # cp my-default.cnf /etc/my.cnf

    # cp mysql.server /etc/init.d/mysqld

      1.  编辑mysqld,修改为mysql的指定路径,

    # vi /etc/init.d/mysqld

    进入编辑页面,按i 可编辑修改,按ctrl+c停止修改,然后  :wq 保存修改

     

     

      1. 把mysql路径添加到环境变量中,方便操作命令:

    # vi /etc/profile

    文件末尾添加export MYSQL=/data/mysql,path中加入$MYSQL/bin:

      1. 使修改后的profile文件生效:

    # source /etc/profile

      1. 执行数据库初始化操作

    执行文件为mysql下bin文件夹中mysql_install_db,basedir为安装目录,datadir为数据文件目录。注:mysql_install_db在5.6版本中位于scripts文件夹,5.7已经取消该文件夹,合并到bin下:

    #cd /data/mysql/bin

    # ./mysqld --basedir=/data/mysql --user=mysql --datadir=/data/mysql/data --initialize

    如果 报error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

    就需要 安装libaio

    # yum install libaio

     

    如果报:[ERROR] --initialize specified but the data directory has files in it. Aborting

    说明已经执行过一次,需要把'/data/mysql/data目录删除,重新创建,再授权

    [root@centOS mysql]# cd /data/mysql

    [root@centOS mysql]# rm -rf data

    [root@centOS mysql]# mkdir data

    [root@centOS mysql]# chown -R mysql:mysql /data/mysql

    [root@centOS mysql]# chmod -R 775 /data/mysql

    [root@centOS mysql]#

    然后再执行:

    #cd /data/mysql/bin

    # ./mysqld --basedir=/data/mysql --user=mysql --datadir=/data/mysql/data --initialize

    以上安装成功效果

      1. 完成之后,启动mysql服务:

    # service mysqld start

     此时已经可以启动服务,但整个工程只算完成了一半。 

    注意:新版的可能会报错,因为mysqld_safe的原因,旧版本安装的时候没有报错,只需要把mysqld_safe中的默认路径修改为自己的目标路径,再执行就可以了。

     

    1. 修改密码
      1. 首先关闭服务,

    #service mysqld stop

      1. 把mysql/bin/mysqld_safe中usr/local/mysql换成指定安装的路径名,然后执行下面代码。

    # mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

      1. 此时已经进入免过滤状态,开始修改root密码。注:5.6版本user表中密码字段是password,5.7之后改为authentication_string,不再有password。

    [root@ZhOu bin]# mysql

    mysql> use mysql;

    mysql> update user set authentication_string=PASSWORD('root') where user='root';

    mysql> flush privileges;

    mysql> exit;

      1. 此时,密码已经修改完成。退出重新登录,本以为搞定了,但是创建数据库,却报错了,错误是:ERROR 1820 (HY000): You must reset your password using ALTER USER statement。原来第一登录,还要再次设置密码,修改之后,创建成功。

     # mysql -u root -p

    mysql> alter user 'root'@'localhost' identified by 'root';

    mysql> flush privileges;

    mysql> exit;

    1. 设置远程登录权限
      1. 如果远程连接登录,会报错误的

    如下:

      1. 确定mysql端口号,

    mysql> show global variables like 'port';

    如果不是3306可进行修改mysql端口号

    1. # vi /etc/my.cnf
    2. 修改 port=3306
    3. 重启 # service mysqld restart

     

      1. 修改远程连接权限,

    很简单,只需要修改user表中root用户的host就可以了。改完之后,记得重启一下服务,再次远程连接

    # mysql -uroot -p

    mysql> use mysql;

    mysql> update user set host='%' where user='root';

    mysql> exit;

    # service mysqld restart

      1. 关闭防火墙,

    如果还连不上报10060 unknown error ,则关闭它

    CentOS7.x 默认的防火墙不是iptables,而是firewalle.

    查看防火墙状态(关闭后显示not running,开启后显示running)

    # firewall-cmd --state

    停止防火墙firewall

    # systemctl stop firewalld.service

    禁止防火墙firewall开机启动

    # systemctl disable firewalld.service

    CentOS6默认的防火墙是iptables

    1。防火墙即时生效,重启后复原:

    关闭

    # service iptables stop

    开启

    # service iptables start

    2。防火墙永久性生效,重启后不会复原

    关闭:

    # chkconfig iptables off

    开启:

    # chkconfig iptables on

     

      1. 阿里云添加安全组规则,开放端口号

    官网手册: https://help.aliyun.com/document_detail/25471.html?spm=5176.100241.0.0.IneJPl

    1. 设置mysql开机自启动

    # chkconfig mysqld on

     

     

     

     

  • 相关阅读:
    2.8日自学成果
    深入数据库同步技术(3)-da-syncer介绍
    敢啃“硬骨头”,开源分布式数据库TiDB如何炼成?
    使用Sqlserver事务发布实现数据同步
    数据一致性-分区可用性-性能—多副本强同步数据库系统实现之我见
    sqlserver2014两台不同服务器上数据库同步
    采用存储复制方式同步数据,实现数据库安全升级
    Linux系统MySQL数据库主从同步实战过程
    红帽携手SAP,推动下一代移动数据库开发与同步
    阿里数据库十年变迁,那些你不知道的二三事
  • 原文地址:https://www.cnblogs.com/chz-blogs/p/14255346.html
Copyright © 2011-2022 走看看