mysql

作者: 436048bfc6a1 | 来源:发表于2018-11-03 12:33 被阅读0次

    忙碌了一周终于有时间总结一下

    1.部署mysql:

     (1) 二进制部署(推荐): 虽然安装较为麻烦,但是mysql的目录是定制化的
     (2) rpm包(不推荐): 
         ~ yum install mysql-server yum install mysql-client
         ~ 部署简单但是目录固化
     (3) 如何安装
          a) 打开/usr/local文件夹: cd /usr/local
          b) 解压jdk并且新建/usr/java, 将jdk解压后的文件移动到/usr/java
          c) 配置全局环境变量并生效: 
             ~ vi /etc/profile
             ~ export JAVA_HOME=/usr/java/jdk1.8.0_191
             ~ export PATH=$PATH:$JAVA_HOME/bin
             ~ source /etc/profile
     (4) 安装步骤
          a) 首先检查是否已经安装
             ps -ef | grep mysqld
          b) 再查看是否有rpm包
              rpm -qa | grep -i mysql
          c) 解压mysql的tar包
          d) 创建用户组与用户
             ~ groupadd -g 101 dba : 新增组dba,并赋予组id为101
             ~ useradd -u 514 -g dba -G root -d /usr/local/mysql mysqladmin
               新增用户mysqladmin, 其home directory为/usr/local/mysql
               id为514,主组为dba, 副组为root
             ~ 如果用户已存在, 修改其的一些信息: 
               usermod -u 514 -g dba -G root -d /usr/local/mysql mysqladmin
             ~ copy环境变量配置文件到mysqladmin的home directory
               cp /etc/skel/.* /usr/local/mysql
             ~ 创建mysql的配置文件: /etc/my.cnf
             ~ 修改my.cnf的一些内容
               innodb_buffer_pool_size(按照自己情况选择)
          e) 修改配置文件my.cnf的用户与用户组
             chown mysqladmin:dba /etc/my.cnf
          f) 修改my.cnf的权限
             chmod 640 /etc/my.cnf
          g) 修改配置文件mysql文件夹的用户与用户组
               chown mysqladmin:dba /usr/local/mysql
          h) 修改mysql的权限(因为做的事软连接, 所有如果只是输入第一条命令,文件夹下文件有可能不会是755的)
               chmod -R 755 /usr/local/mysql
               chmod -R 755 /usr/local/mysql/*
               chmod -R 755 文件path
          i) 创建binlog文件(mkdir arch) 先切换为mysqladmin用户(在/usr/local/mysql文件夹下)
          L) 配置mysql的信息
              scripts/mysql_install_db  --user=mysqladmin --basedir=/usr/local/mysql 
              --datadir=/usr/local/mysql/data
             有一定几率出现Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory #缺少libaio.so 包
    (5) 配置mysql服务并配置开机自启动
          a) 首先切换到/usr/local/mysql,将服务文件拷贝到init.d下,并重命名为mysql
             cp support-files/mysql.server /etc/rc.d/init.d/mysql 
          b) 对mysql文件赋予执行权限
             chmod +x /etc/rc.d/init.d/mysql
          c) 删除mysql服务
             chkconfig --del mysql
          d) 添加mysql服务
             chkconfig --add mysql
          e) 设置开机自启动
             chkconfig mysql on
             ~ 如果chkconfig mysql on没有起作用,vi /etc/rc.local文件,
               添加su - mysqladmin -c "/etc/init.d/mysql start --federated"
     (6) 启动mysql进程并监听
          a) 首先切换到mysqladmin用户
              su - mysqladmin
          b) 由于mysql在安装的时候自动在home directory 创建一个my.cnf文件,尽量删除
              rm -rf my.cnf
          c) 配置个人环境变量
              在Home directory中.bash_profile文件中添加
              ~ export MYSQL_HOME=/usr/local/mysql
              ~ export PATH=$MYSQL_HOME/bin:$PATH
          d) 启动mysql
             ~ mysqld_safe & , 执行之后按回车键,程序直接后台运行
     (7)  查找mysql的端口号
          a) ps -ef | grep mysql
          b) netstat -nlp | grep pid
     (8) 配置局部变量
          vi .bash_profile
          `export MYSQL_HOME=/usr/local/mysql`
          `export PATH=$MYSQL_HOME/bin:$PATH`
    
    1. 登录mysql
    (1) 直接输入mysql
    
    1. Mysql常用命令
    (1) show databases;
        会出现如下的结果
        +--------------------+
        | Database           |
        +--------------------+
        | information_schema |
        | mysql              |
        | performance_schema |
        | test               |
        +--------------------+
    (2) use mysql:  使用mysql数据库
    (3) show tables: 显示mysql数据库一共有多少张表
          如下(一共28张表)
          +---------------------------+
          | Tables_in_mysql           |
          +---------------------------+
          | columns_priv              |
          | db                        |
          | event                     |
          | func                      |
          | general_log               |
          | help_category             |
          | help_keyword              |
          | help_relation             |
          | help_topic                |
          | innodb_index_stats        |
          | innodb_table_stats        |
          | ndb_binlog_index          |
          | plugin                    |
          | proc                      |
          | procs_priv                |
          | proxies_priv              |
          | servers                   |
          | slave_master_info         |
          | slave_relay_log_info      |
          | slave_worker_info         |
          | slow_log                  |
          | tables_priv               |
          | time_zone                 |
          | time_zone_leap_second     |
          | time_zone_name            |
          | time_zone_transition      |
          | time_zone_transition_type |
          | user                      |
          +---------------------------+
    (4) 从user表查询用户信息
         `select from user, password, host from user;`
         +------+----------+--------------+
         | user | password | host         |
           用户      密码    允许外面机器(ip)
         +------+----------+--------------+
         | root |          | localhost    |
         | root |          | bogon        |
         | root |          | 127.0.0.1    |
         | root |          | ::1          |
         |      |          | localhost    |
         |      |          | bogon        |
         +------+----------+--------------+ 
    (5) 修改用户密码
        `update user set password=password('123456') where user='root';`
        之后再查询user表显示如下
        +------+-------------------------------------------+-----------+
        | user | password                                  | host      |
        +------+-------------------------------------------+-----------+
        | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | localhost |
        | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | bogon     |
        | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | 127.0.0.1 |
        | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | ::1       |
        |      |                                           | localhost |
        |      |                                           | bogon     |
        +------+-------------------------------------------+-----------+
    (5) 删除空用户
        `delete from user where user = '';`
         因为空账号和空密码是十分危险的
    (6) 刷新权限
          `flush privileges;`
          对于用户表的操作都加这句话。
    (7) 创建数据库
          `create database henrydb`
    (8) 赋予权限
         `grant all privileges on henrydb.* to henry@'127.0.0.1' identified by '123456'`
          在127.0.0.1的ip下使用henry用户访问数据库
         `grant all privileges on henrydb.* to henry@'%' identified by '123456'`
          在所有ip下使用henry用户访问数据库
         `grant all privileges on henrydb.* to henry@'133.122.111.0' identified by '123456'`
          如果ip总在变,使用该方法配置
         创建henry用户, 赋予henrydb的所有权限给henry用户,密码是123456
         不要忘记`flush privileges`
    (9) 使用henry用户进入mysql
         `mysql -u henry -p -h 127.0.0.1`
         此时再show databases 显示如下
         +--------------------+
         | Database           |
         +--------------------+
         | information_schema |
         | henrydb            |
         | test               |
         +--------------------+
        由于mysql和performance_schema 权限较高,无法被henry用户查看。
    (10) 正确进入数据库的命令
         `mysql -uroot -p -h127.0.0.1 -P3306`
         `mysql -uroot -p123456 -h127.0.0.1 -P3306`
         (注意-p后面不能接空格,因为会将空格看成为密码的一部分)
    

    4.删除MySQL

    (1) rm -rf $MYSQL_HOME/arch/*     删除binlog
    (2) rm -rf $MYSQL_HOME/data/*     删除数据
    
    1. 补充
    (1)  如果命令过长怎办
         scripts/mysql_install_db  \
         --user=mysqladmin \
         --basedir=/usr/local/mysql \
         --datadir=/usr/local/mysql/data

    相关文章

      网友评论

          本文标题:mysql

          本文链接:https://www.haomeiwen.com/subject/qejkxqtx.html