zoukankan      html  css  js  c++  java
  • mysql安装管理 -> 编译&yum_02

    首先 mysql5.7是目前的主流稳定版本,下载地址可以参考官网下载  --- >  官网下载点我

    笔记为markdown模式,博客园不太兼容,详细内容参考  ---  有道云笔记点我

    mysql的安装方式:

      1.yum 安装 :安装方便、安装速度快,无法定制

      2.通用安装(二进制):不需要安装,解压即可使用,不能定制功能

      3.编译安装:可定制,安装慢。

        注意:

          5.5之前:./configure make make install

          5.5之后:cmake   gmake  

      4.先编译,然后制作rpm,制作yum库,然后yum安装。

         简单、速度快、可定制,比较复杂,制作时间长


     

    二进制安装

    依赖

    yum install libaio-devel perl-Module-*

    tar xf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

    mv mysql-5.7.17-linux-glibc2.5-x86_64 /application/mysql-5.7.17

    ln -s /application/mysql-5.7.17 /application/mysql


    mysql 5.7编译安装

    环境准备:

    [root@db01 ~]# cat /etc/redhat-release
    CentOS Linux release 7.5.1804 (Core)

    [root@db01 ~]# uname -a
    Linux db01 3.10.0-862.el7.x86_64

    1. 下载

    mkdir  /server/tools -p   创建工具目录

    下载带有boost的mysql-5.7.20(默认版本为1.59版本)

    官方自带(boost版本mysql)--->推荐使用mysql官方版本 
    wget
    https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz

    tar xf mysql-boost-5.7.20.tar.gz   解压下载之后的包

    2. 安装依赖包

    源码安装mysql需要依赖  cmake  boost

    yuminstall -y cmake gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel 

    3. 创建关键目录

    mkdir /usr/local/mysql
    mkdir /usr/local/mysql/mydata
    mkdir /usr/local/mysql/conf
    useradd mysql
    chown -R mysql:mysql /usr/local/mysql*

    4. cmake进行预编译

    cd mysql-5.7.20/     切换进目录再进行如下操作

    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    -DMYSQL_DATADIR=/usr/local/mysql/mydata  
    -DSYSCONFDIR=/usr/local/mysql/conf 
    -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    -DMYSQL_UNIX_ADDR=/usr/local/mysql1/mysql.sock 
    -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all 
    -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci 
    -DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0 
    -DWITH_SSL:STRING=bundled -DWITH_ZLIB:STRING=bundled 
    -DWITH_SYSTEMD=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost

    注意:

    -DWITH_SYSTEMD=1     //是否支持sysytemd方式管理mysql
    -DDOWNLOAD_BOOST=1   //自动下载boost软件支持
    -DWITH_BOOST=./boost //本地boost目录
    
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql     #指定安装路径
    -DMYSQL_DATADIR=/usr/local/mysql/mydata              #数据路径
    -DSYSCONFDIR=/usr/local/mysql/conf                 #配置文件
    -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1     #管理用户
    -DWITH_INNOBASE_STORAGE_ENGINE=1             #是否开启存储引擎支持
    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock         #套接字文件
    -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all       #端口号
    -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci     #默认字符集和校对规则
    -DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0 
    -DWITH_SSL:STRING=bundled -DWITH_ZLIB:STRING=bundled         #是否支持SSL
    -DWITH_SYSTEMD=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost

     5. 进行编译安装

    make && make install :等待时间较长

    安装完成后:

    执行echo $? 查看是否成功

    初始化数据:初始化管理员密码为空

    /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/usr/local/mysql/mydata --basedir=/usr/local/mysql 

    书写基础配置文件

    vim /etc/my.cnf

    [mysqld]
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/mydata
    socket=/tmp/mysql.sock
    log_error=/var/log/mysql.log
    user=mysql
    [client]
    socket=/tmp/mysql.sock

    启动mysql

    touch /var/log/mysql.log
    chown -R mysql.mysql /var/log/mysql.log
    
    cd  /usr/local/mysql/support-files   //切换到启动目录
    
    vim  mysql.server     
    替换所有 mysqld_safe 为 mysqld
    方法:#s#mysqld_safe#mysqld#g
    
    ./mysql.server start      //启动Mysql

    检查端口是否开启

    编译安装 -> 优化

    使用systemctl启动

    注意:如果之前用其它方式开启过,请先关闭,之后在用如下方式启动。

    vim /etc/systemd/system/mysqld.service
    [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

    使用systemcrl status  mysqld 查看

    环境变量设置(无密码登录)

    tail -1 /etc/profile
    export PATH=/usr/local/mysql/bin:$PATH
    
    source /etc/profile    //生效
    
    mysql   //直接使用mysql登录

    将密码改为空

    update mysql.user set authentication_string=PASSWORD('') where user='root' and host='localhost';
    flush privileges;    //立即生效
    或者重启数据库也会生效。
    
    注意: mysql.user 在每次数据库启动时会自动加载到内存,如果使用update语句直接修改表内容,mysql不会立即将变化更新内存,需要手工触发。 

    设置密码登录

    [root@oldboy ~]# mysqladmin password
    New password:    //新密码
    Confirm new password:  //再次输入
    Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.  //警告
    
    [root@oldboy ~]# mysql -uroot -p123  //使用密码登录

    已有密码,重设密码

    [root@oldboy ~]# mysqladmin -uroot -p password
    Enter password:  //老密码
    New password:       //新密码
    Confirm new password: //再次输入
    Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

    忘记密码怎么办?

    --skip-grant-tables     ----> 跳过授权表(mysql.user)
    --skip-networking       ----> 跳过网络用户连接
    
    如何使用?
    (1) 停数据库
    systemctl  stop mysqld
    
    (2)跳过授权表启动数据库
    mysqld --skip-grant-tables --skip-networking  &     //加 & 是后台运行
    然后可以用  mysql  就可以无密码登录
    
    (3)修改密码
     update mysql.user set authentication_string=PASSWORD('123456') where user='root' and host='localhost';
    
    (4)停库,然后正常启动
    mysqladmin shutdown 
    systemctl start mysqld
    [root@oldboy ~]# mysql -uroot -p123456     // 可以用新密码登录

         

  • 相关阅读:
    Android 开发 深入理解Handler、Looper、Messagequeue 转载
    Android 开发 Handler的基本使用
    Java 学习 注解
    Android 开发 AlarmManager 定时器
    Android 开发 框架系列 百度语音合成
    Android 开发 框架系列 Google的ORM框架 Room
    Android 开发 VectorDrawable 矢量图 (三)矢量图动画
    Android 开发 VectorDrawable 矢量图 (二)了解矢量图属性与绘制
    Android 开发 VectorDrawable 矢量图 (一)了解Android矢量图与获取矢量图
    Android 开发 知晓各种id信息 获取线程ID、activityID、内核ID
  • 原文地址:https://www.cnblogs.com/tim1blog/p/9754037.html
Copyright © 2011-2022 走看看