Linux tar方式安装MySQL

Linux tar方式安装mysql

 本文介绍一下linxu环境下通过解压tar包方式Mysql数据库的安装。
  1. 创建mysql用户组
      在安装的时候创建一个mysql组和一个mysql用户,把跟mysql安装有关的目录属主改为mysql,在MySQL启动的时候,单进程mysqld,该进程的属主就是mysql,这样就保证了mysql服务的独立性,即便mysql服务被黑掉,得到了mysql用户权限,也不会影响整个系统的安全。

    [root@localhost /]# groupadd mysql 		#创建mysql用户组(可以自己取其它的名字)
    [root@localhost /]# useradd -r -g mysql mysql	#创建mysql用户并添加到mysql用户组中
    [root@localhost /]# passwd mysql		#给mysql用户设置密码,保证安全性(可不操作)
    
  2. 下载mysql tar包并解压
    这里用到的是mysql-5.5.62 64位: 官方下载地址
    想下载其它版本的可以访问mysql官网:

    https://dev.mysql.com/downloads/mysql/

    [root@localhost /]# cd /opt 
    [root@localhost opt]# wget https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz    #wget下载
    [root@localhost opt]# tar -xzvf /opt/mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz -C /usr/local/  	#解压
    [root@localhost local]# mv /usr/local/mysql-5.5.62-linux-glibc2.12-x86_64/ /usr/local/mysql 		#重命名
    [root@localhost local]# chown -R mysql /usr/local/mysql/		#将mysql目录访问权限赋为mysql用户
    [root@localhost local]# chgrp -R mysql /usr/local/mysql/ 		#改变mysql目录的用户组属于mysql组
    

    将mysql安装目录添加到系统变量

    [root@localhost local]# vim /etc/profile
    

    添加内容

    #mysql
    export MYSQL_HOME=/usr/local/mysql
    export PATH=$MYSQL_HOME/bin:$PATH
    

    使环境变量生效

    [root@localhost local]# source /etc/profile
    
  3. 创建配置文件

    [root@localhost local]# vim /etc/my.cnf		
    #如果存在此文件且有内容,清空其内容
    [root@localhost local]# echo > /etc/my.cnf
    

    写入以下内容:

    [client]
    port = 3306
    socket = /tmp/mysql.sock
    [mysqld]
    bind-address = 0.0.0.0
    #编码格式
    character_set_server=utf8
    init_connect='SET NAMES utf8'
    #安装目录
    basedir=/usr/local/mysql
    #数据目录
    datadir=/usr/local/mysql/data
    socket=/tmp/mysql.sock
    #日志目录
    log-error=/var/log/mysqld.log
    #进程目录
    pid-file=/var/run/mysqld/mysqld.pid
    # 0:表明字段名不区分大小写;1:区分
    lower_case_table_names = 1
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    max_connections=5000
    default-time_zone = '+8:00'
    
  4. 初始化数据库
    安装这个保证mysql安装不出错

    [root@localhost local]# yum install libaio
    

    创建mysql log日志文件

    [root@localhost local]# touch /var/log/mysqld.log && chmod 777 /var/log/mysqld.log
    [root@localhost local]# chown mysql:mysql /var/log/mysqld.log
    

    创建 /tmp/mysql.sock文件

    [root@localhost mysqld]# touch /tmp/mysql.sock
    [root@localhost mysqld]# chown -R mysql:mysql  /tmp/mysql.sock
    [root@localhost mysqld]# chmod 777  /tmp/mysql.sock
    

    创建mysql 进程pid文件

    [root@localhost ~]# mkdir -p /var/run/mysqld/ && cd /var/run/mysqld/
    [root@localhost mysqld]# touch mysqld.pid
    [root@localhost mysqld]# chown -R mysql:mysql /var/run/mysqld/
    [root@localhost mysqld]# chmod 777 mysqld.pid
    

    初始化mysql数据配置

    [root@localhost mysql]# cd /usr/local/mysql/scripts/
    [root@localhost mysql]# sh mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    [root@localhost mysql]# mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US
    

      以上最后一条命令执行后如果mysql初始化成功会开始运行,则此命令不会结束退出,无法通过ctrl c退出此命令来停止mysql,重开一个会话窗口,执行:ps aux | grep mysq | grep -v grep找到mysql进程号,kill -9 PID ,杀掉进程。
      或者直接将mysql 添加为系统服务,执行service mysqld stop停止,具体操作请看第5步

    如果在初始化的过程中出错,会退出初始化命令,查看mysql日志信息:

    [root@localhost local]# cat /var/log/mysqld.log
    

    可能会出现以下问题
    在这里插入图片描述
    在这里插入图片描述

    是因为/usr/local/mysql/data下在初始化的时候出现的新文件夹不是mysql用户和用户组权限,执行:

    [root@yanhaipeng mysql]# chown -R mysql:mysql /usr/local/mysql/
    
  5. 将mysql加入系统服务,开机启动

    [root@localhost data]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    [root@localhost data]# chkconfig --add mysqld
    [root@yanhaipeng init.d]# service mysqld stop
    

    mysql服务基本命令
    service mysqld start|stop|restart|reload|force-reload|status

    登录mysql

    [root@yanhaipeng init.d]# service mysqld start
    [root@localhost data]# mysql -u root -p
    

    第一次安装密码为空,直接回车
    Linux tar方式安装MySQL_第1张图片
    设置密码:

    use mysql;
    update user set password=password('yourpassword') where user='root';
    #如果提示ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’ 则执行
    update user set authentication_string=password('yourpassword') where user='root';
    #刷新权限:
    flush privileges;
    quit;
    #重启mysql
    service mysqld restart
    mysql -u root -p
    输入新的密码即可登录mysql
    
  6. 远程连接
    (1).修改/etc/mysql/my.conf

    [root@yanhaipeng /]# vim /etc/my.cnf 
    [root@yanhaipeng /]# service mysqld restart
    

    找到bind-address = 127.0.0.1这一行,改为bind-address = 0.0.0.0即可,前面已经配置好了。

    (2).设置远程连接账号权限

    #登录mysql客户端
    mysql -u root -p
    #添加admin用户,允许任何ip地址的电脑用admin帐户和密码(123456)来远程访问这个mysql server(用户名和密码可自定义设置)。
    grant all on *.* to admin@'%' identified by '123456' with grant option; 
    #设置root用户允许远程连接mysql数据库
    grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
    #刷新缓存
    flush privileges;
    #查看系统用户,	#host为%的账号可用于远程连接mysql
    use mysql;
    select user,host from user;
    #退出mysql客户端
    exit;	
    #重启mysql服务
    #service mysqld restart
    

    (3) 开放mysql端口
    mysql 默认的是3306端口,可在/etc/mysql/my.conf中配置
    如果系统使用的是firewall防火墙,执行以下命令:

    firewall-cmd --zone=public --add-port=3306/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
    firewall-cmd --reload  #重新载入
    firewall-cmd --zone=public --query-port=3306/tcp   #查看此端口
    firewall-cmd --zone=public --remove-port=80/tcp --permanent  #删除此开放端口	
    

    如果系统使用的是iptables 防火墙,执行以下命令:

    [root@yanhaipeng /]# iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
    [root@yanhaipeng /]# iptables -A OUTPUT -p tcp --sport 3306 -j ACCEPT
    [root@yanhaipeng /]# iptables -L -n	#查看开启3306端口规则是否生成
    [root@yanhaipeng /]# service iptables save	#保存iptables 修改
    

    navicat连接mysql
    Linux tar方式安装MySQL_第2张图片

    安装成功。

你可能感兴趣的:(数据库)