• 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     // 可以用新密码登录

         

  • 相关阅读:
    VMWare的Cloud Foundry实践(二):和MongoDB对接成功~
    MongoDB实践
    MongoDB 可读性比较差的语句
    C#异步编程之:(一)Task对象和lamda表达式探究
    创建自己的awaitable类型
    C#异步编程之(三):深入 Async 和 Await 的实现及其成本
    Node.js实践
    MVC+EasyUI+三层新闻网站建立(六 tabs的完成)
    MVC+EasyUI+三层新闻网站建立(七:分页查询出数据)
    MVC+EasyUI+三层新闻网站建立(八,详情页面完成)
  • 原文地址:https://www.cnblogs.com/tim1blog/p/9754037.html
Copyright © 2020-2023  润新知