linux离线安装mysql5.7

  1. 描述
    有时候在内网中linux无法在线安装mysql,因此需要手动安装,这个过程比较麻烦。

  2. 准备
    系统centos7、mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz

  3. 过程
    1)根据自己需要选择在root账号安装mysql,也可以选择其他账户,首先将mysql解压到安装目录下。

    [root@master datasoft]# tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz
    

    2)将解压的目录更名为mysql

    [root@master datasoft]# mv mysql-5.7.34-linux-glibc2.12-x86_64 mysql
    

    3)给mysql目录添加权限,通常来说是直接创建mysql用户然后,添加权限,不过我自己觉得麻烦是直接给mysql目录用root账户

    #这里演示创建mysql用户的操作
    #添加mysql组和msyql用户
    [root@master datasoft]# groupadd mysql
    [root@master datasoft]# useradd -s /sbin/nologin -r -g mysql mysql
    [root@master datasoft]# chown -R mysql:mysql /root/datasoft/mysql
    #-s:指定用户登入后所使用的shell 
    #-r:系统级用户
    #-g:所属分组为mysql
    
    #我自己是直接用root用户,不需要创建
    [root@master datasoft]# chown -R root:root /root/datasoft/mysql
    

    4)在mysql目录中创data和logs目录

    [root@master mysql]# mkdir {data,logs}
    

    5)修改/etc/my.cnf文件,有的系统可能还要创建/etc/my.cnf.d文件否则会报错找不到该目录

    [root@master mysql]# chown 777 /etc/my.cnf
    [root@master mysql]# vim /etc/my.cnf
    
    [mysqld]
    character_set_server=utf8
    character_set_server=utf8 
    init_connect='SET NAMES utf8' 
    basedir=/root/datasoft/mysql 
    datadir=/root/datasoft/mysql/data 
    socket=/root/datasoft/mysql/mysql.sock
    #开启ip绑定 
    #bind-address = 0.0.0.0 
    log_timestamps = SYSTEM 
    open_files_limit=30000 
    max_connections=3000 
    #控制其通信缓冲区的最大长度 
    max_allowed_packet=256M
    #设置忽略大小写(简单来说就是sql语句是否严格),默认库名表名保存为小写, 不区分大小写
    lower_case_table_names = 1 
    #Disabling symbolic-links is recommended to prevent assorted security risks 
    symbolic-links=0
    [mysqld_safe] 
    log-error=/root/datasoft/mysql/logs/mysqld.log 
    pid-file=/root/datasoft/mysql/data/mysqld.pid
    
    [client] 
    socket=/root/datasoft/mysql/mysql.sock 
    #default-character-set=utf8
    # include all files from the config directory
    !includedir /etc/my.cnf.d
    

    6)当我们把这些都配置好,就可以初始化mysql了,basedir为我们的mysql目录,datadir为我们创建的保存数据的目录。初始化后会打印出初始密码,如果忘记了可以清空datadir目录重新执行初始化。

    [root@master mysql]# ./bin/mysqld --initialize --user=root --basedir=/root/datasoft/mysql/ --datadir=/root/datasoft/mysql/data/
    

    7)复制启动脚本到资源目录,并修改//etc/rc.d/init.d/mysqld文件

    [root@master mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
    [root@master mysql]# chmod +x /etc/rc.d/init.d/mysqld
    [root@master mysql]# vim /etc/rc.d/init.d/mysqld
    ...
    basedir=/root/datasoft/mysql
    datadir=/root/datasoft/mysql/data
    ...
    if test -x $bindir/mysqld_safe
    then
      # Give extra arguments to mysqld with the my.cnf file. This script
      # may be overwritten at next upgrade.
      $bindir/mysqld_safe --user=root(在此处添加--user=root)  --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
      wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?
      ...
    

    8)在/etc/profile添加环境变量

    [root@master mysql]# vim /etc/profile
    ...
    export MYSQL_HOME=/root/datasoft/mysql
    export PATH=$PATH:$MYSQL_HOME/bin
    ...
    

    9)启动并登陆mysql,密码就是初始化给的密码

    [root@master mysql]# service mysqld start
    [root@master mysql]# mysql -uroot -p******
    mysql> use mysql
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    mysql> update user set password=password('123456') where user='root'
    and host='localhost';
    mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;#允许远程连接
    mysql> flush privileges;
    

版权声明:本文为weixin_43837034原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。