zoukankan      html  css  js  c++  java
  • 2. MYSQL 数据库的介绍安装

    2.1 MySQL 5.7 二进制版本安装

    2.1.1 下载并上传软件至/opt

    2.1.2 解压软件

    cd /opt  && 
    tar xf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
    ln -s /opt/mysql-8.0.20-linux-glibc2.12-x86_64  /usr/local/mysql
    

    2.1.3 用户的创建处理原始环境

    rpm -qa |grep mariadb
    yum remove mariadb-libs-5.5.65-1.el7.x86_64 -y
    gzip   /etc/my.cnf
    yum install libaio-devel -y
    useradd -s  /sbin/nologin mysql
    

    2.1.4 设置环境变量

    cat >>/etc/profile<<EOF
    export PATH=/usr/local/mysql/bin:$PATH
    EOF
    
    #加载环境变量
    source /etc/profile
    
    #check
    mysql -V
    mysql  Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)
    

    2.1.5 授权

    mkdir -p /data/3306/data
    chown -R mysql. /data
    

    2.1.6 准备配置文件

    cat >/etc/my.cnf<<'EOF'
    [mysqld]
    user=mysql
    basedir=/usr/local/mysql
    datadir=/data/3306/data
    socket=/tmp/mysql.sock
    [mysql]
    socket=/tmp/mysql.sock
    EOF
    

    *2.1 7 初始化数据(创建系统数据)

    (适用于mysql 5.7 8.0)

    1.初始化方式:
    [root@db01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data 
    
     
    2.报错:
    2.1报错信息1
    mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
    2.1.1解决:
    [root@db01 ~]# yum install -y libaio-devel
    
    2.2报错信息2
    2020-12-14T10:25:50.587761Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
    2.2.1解决:
    数据目录非空, 初始化会报错。 (执行第二遍数据库时,数据目录下非空,不能初始化,需要将数据目录清空)
    [root@db01 /data/mysql/data]#    
    m -rf /data/3306/data/*
    [root@db01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql--datadir=/data/3306/data/
    
    3.正确的输出: 
    [root@db01 ~]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data/
    2019-06-13T04:21:27.706564Z 1 [Note] A temporary password is generated for root@localhost: =mrV)_16is4U
    
    
    5.6- 初始化方式
    /usr/local/mysql_install_db 
    

    2.1.8 准备启动脚本

    #方式一加入servcie启动
    [root@db01 ]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    
    /etc/init.d/mysqld start|stop|restart  或  service mysqld restart
    
    #方式二配置systemd启动
    [root@db01 ]# systemctl enable mysqld   #开机自启动能(能将service启动方式 一键加systemctl启动)
    
    #或者手动配置
    cat >/etc/systemd/system/mysqld.service <<EOF
    [Unit]
    Description=MySQL Server
    Documentation=man:mysqld(8)
    Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
    After=network.target
    After=syslog.target
    [Install]
    WantedBy=multi-user.target
    [Service]
    User=mysql
    Group=mysql
    ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
    LimitNOFILE = 5000
    EOF
    

    2.1.9 启动错误

    5.1 without updating PID 类似错误
    #查看日志:
        在哪?
        /data/mysql/data/主机名.err 
        [ERROR] 上下文
    
    #可能情况:
    -/etc/my.cnf 配置文件错误
    -/tmp/mysql.sock文件修改过 或 删除过 
    
    数据目录权限不是mysql
    参数改错了
    
    Warning: mysqld.service changed on disk. Run 'systemctl daemon-reload' to reload units.
    

    2.1.10 初次设定密码

    mysqladmin -uroot -p password
    Enter password: 
    New password: 
    Confirm new password: 
    

    2.1.11 管理员用户密码忘记了?

    1. 关闭数据库:
    使用 systemctl  stop  mysqld  
    或  service  mysqld stop  
    或  /etc/init.d/mysqld stop
    或  mysql> shutdown 
    或  mysqladmin -u  -p  shutdown
    
    
    2. 使用安全模式启动:
    [root@db01 ~]# mysqld_safe  --skip-grant-tables --skip-networking &       #只允许本地无密码登录
    
    [1] 4004
    [root@db01 ~]# 2020-09-24T09:45:25.485161Z mysqld_safe Logging to '/data/mysql/data/db01.err'.
    2020-09-24T09:45:25.521325Z mysqld_safe Starting mysqld daemon with databases from /data/mysql/data
    --------------------
    #或者
    service mysqld start --skip-grant-tables --skip-networking
    ---------------------
    3. 打开新窗口:
      执行 mysql> 
      
    4. 修改密码:
    mysql> flush privileges;                                          #手动加载授权表
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> alter  user root@'localhost'   identified by '123456' ;     #修改密码
    Query OK, 0 rows affected (0.00 sec)
    
    
    5. 重启数据库到正常模式
    [root@db01 ~]# systemctl  restart mysqld.service
    

    2.2 编译安装(了解)

    2.2.1 下载并上传软件

    mkdir -p /server/tools
    cd /server/tools
    mkdir /application
    

    2.2.2 安装依赖包

    yum install -y ncurses-devel libaio-devel
    #(5)安装cmake
    yum install cmake –y
    

    2.2.3 环境清理

    rpm -qa |grep mariadb
    yum remove mariadb-libs-5.5.65-1.el7.x86_64 -y
    

    2.2.4 创建用户

    useradd -s /sbin/nologin -M mysql
    

    2.2.5 编译安装

    tar xf mysql-5.6.39.tar.gz
    cd mysql-5.6.39
    cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.39 
    -DMYSQL_DATADIR=/application/mysql-5.6.39/data 
    -DMYSQL_UNIX_ADDR=/application/mysql-5.6.39/tmp/mysql.sock 
    -DDEFAULT_CHARSET=utf8 
    -DDEFAULT_COLLATION=utf8_general_ci 
    -DWITH_EXTRA_CHARSETS=all 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    -DWITH_FEDERATED_STORAGE_ENGINE=1 
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 
    -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 
    -DWITH_ZLIB=bundled 
    -DWITH_SSL=bundled 
    -DENABLED_LOCAL_INFILE=1 
    -DWITH_EMBEDDED_SERVER=1 
    -DENABLE_DOWNLOADS=1 
    -DWITH_DEBUG=0
    
    make && make install
    

    2.2.6 配置并启动

    (1)制作软连接:
    ln -s /application/mysql-5.6.39/ /application/mysql
    
    (2)拷贝配置文件到/etc:
    cp support-files/my*.cnf /etc/my.cnf
    
    (3)初始化数据库:
    /application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql
    
    (4)创建关键目录并设置权限:
    mkdir -p /application/mysql/tmp
    chown -R mysql.mysql /application/mysql/
    
    (5)复制启动脚本到/etc/init.d/mysqld
    cp support-files/mysql.server /etc/init.d/mysqld
    
        授权
        chmod 700 /etc/init.d/mysqld
        ####################################
        centos6
        开机自启动
        chkconfig mysqld on
        chkconfig --list mysqld 
    
        centos7 
        systemctl enable mysqld.service
        systemctl is-enabled mysqld.service
    
        ###########################################
    
    (6)启动数据库
    /etc/init.d/mysqld start
    netstat -lntup|grep 330
    
    (7)配置环境变量
    echo 'PATH=/application/mysql/bin/:$PATH' >>/etc/profile
    tail -1 /etc/profile
    source /etc/profile
    echo $PATH
    
    mysql> select user,host,password from mysql.user;
    

    *2.3 面试题

    2.3.1 MySQL 有哪些安装方式?

    Centos: rpm(yum)、二进制、源码。
    

    2.3.2 MySQL 5.6 、 5.7 安装过程有什么区别?

    初始化
    5.6 /application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql
    5.7 8.0 mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
    
  • 相关阅读:
    成功在RedFlag Linux 5.0桌面版安装oralce10
    ORACLE ebs 11.5.10 for linux 安装心得
    C#讀取轉換Excel檔案的優化(源代碼)
    [轉]SAP BASIS经验十年James Yen
    SAP Basis 常用事务代码
    健康指南:人体十大最佳黄金时间
    中國人使筷子的十二種忌諱
    SAP basis 相关设定
    技术出身,如何做好项目经理?
    [轉貼]奋斗5年从月薪3500到700万!
  • 原文地址:https://www.cnblogs.com/hypj/p/14199904.html
Copyright © 2011-2022 走看看