• shell 脚本实战笔记(11)--Mysql在linux下的安装和简单运维


    前言:

      linux中安装mysql以及配置的管理, 基础的运维和管理还是需要会一些的. 这边作下笔记, 以求天天向上(^_^).

    安装流程:
    *). 安装mysql-server
    1). 借助yum检索相关的mysql rpm包
    yum search mysql

    mysql-server.x86_64 正是我们想要的

    2). 安装mysql-server
    yum install mysql-server.x86_64 -y

    默认mysql-client也安装好

    3). 启动mysql服务
    /etc/init.d/mysqld start

    4). 管理用户
    mysql -u root -p
    root用户的默认密码为空

    5). 添加用户权限
    GRANT ALL PRIVILEGES ON <database_name>.<table_name> TO <username>@'<ip>' IDENTIFIED BY '<password>'

    如图所示, 把在所有库的所有的表的所有权限赋予给(username='hiveuser', password='hivepass'), 而且登录地址不受限.
    其实, 权限表, 在mysql.user表中定义

    mysql> show create table mysql.userG;
    Create Table: CREATE TABLE `user` (
      `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
      `User` char(16) COLLATE utf8_bin NOT NULL DEFAULT '',
      `Password` char(41) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
      # 中间省略....
      PRIMARY KEY (`Host`,`User`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges'
    

    注意: PRIMARY KEY为('Host', 'User')的联合主键

    用户验证, 密码为加密密码

    mysql-server部署在tw-node6机器上, 在另一台及其tw-node7登录进行验证

    但本地mysql client去连mysql server缺总是失败?

    看来'%'并不包含本地, 需要额外的添加ip为'localhost'的才行

    进行验证:

    6). 进程分析
    简单ps下相关进程

    进程: mysqld 是真正的mysql服务进程
    进程: mysqld_safe, 其实是mysqld服务进程的监控脚本, 用于启动, 并且在mysqld退出以后, 重启服务, 该角色类似于大名鼎鼎的supervise

    [root@tw-node6 ~]# file /usr/bin/mysqld_safe 
    /usr/bin/mysqld_safe: POSIX shell script text executable
    [root@tw-node6 ~]# file /usr/libexec/mysqld
    /usr/libexec/mysqld: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped

    而/etc/init.d/mysqld就是调用/usr/bin/mysqld_safe, 从而间接启动mysqld服务的

    7). 配置管理
    在编辑/etc/my.cnf

    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    
    [mysqld_safe]
    log-error=/var/log/mysqld.logskip-name-resolve
    pid-file=/var/run/mysqld/mysqld.pid

    这边的省略了很多配置项
    比如在[mysqld]下的skip-grant-tables, 当管理员忘记帐号密码的时候, 可以借助这个来恢复.
    比如在[mysqld]下的skip-name-resolve, 避免域名解析, 防止外部机器连接mysql-server后, 导致慢查询
    socket=/var/lib/mysql/mysql.sock, 即mysql.sock, 用于可以借助mysql.sock来连接mysql服务
    比如 mysql -S /var/lib/mysql/mysql.sock, 这样也相当的方便

  • 相关阅读:
    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 问题解决方法
    springboot入门(一)--快速搭建一个springboot框架
    SpringBoot 中常用注解@Controller/@RestController/@RequestMapping介绍
    理解Spring4.0新特性@RestController注解
    Intellij IDEA 搭建Spring Boot项目(一)
    Java checked 异常 和 RuntimeException(运行时异常)
    Java 如何抛出异常、自定义异常、手动或主动抛出异常
    微服务设计
    为什么需要API网关?
    微服务API网关
  • 原文地址:https://www.cnblogs.com/mumuxinfei/p/3854795.html
Copyright © 2020-2023  润新知