zoukankan      html  css  js  c++  java
  • linux_mysql安装

    历史版本: https://downloads.mysql.com/archives/community/

    mysql安装准备:

      1. 加大虚拟机内存,1~2G,编译时候更快

      2. 提前下好软件

      3. 重视操作过程报错输出

      4. 进入虚拟机中make 和 make install , 以免前功尽弃

    如何安装?

      1. 创建mysql用户

    useradd mysql -s /sbin/nologin -M
    
    id mysql         # 检查

      2. 下载

        版本选择:

        # mysql 5.5            占用60%     

        # 5.5下载地址:https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.58.tar.gz

        # mysql 5.6+          占用20%

        # 5.6下载地址: https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.38.tar.gz

        # 5.1下载地址: https://cdn.mysql.com/archives/mysql-5.1/mysql-5.1.72.tar.gz

        选择5.5版本

        统一下载到家目录下 tools目录中

    cd ~/tools
    
    wget https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.38.tar.gz
    
    tar -xf mysql-5.5.tar.gz            # 解压
    cd mysql-5.5                           # 进入解压源码目录
    yum install -y cmake ncurses-devel gcc-c++ openssl-devel ncurses-devel                   
    # 这5.5 和5.6两个版本需要通过cmake进行安装,并安装相关依赖
    # 可以通过 make -j 4,-j指定cpu的核数,加快编译过程,如果使用不当还会减慢安装速度

      安装5.5相关参数:

    cmake . 
    
    -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.58 
    
    -DMYSQL_DATADIR=/application/mysql-5.5.58/data 
    
    -DMYSQL_UNIX_ADDR=/application/mysql-5.5.58/mysql.sock 
    
    -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii 
    
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    
    -DWITH_FEDERATED_STORAGE_ENGINE=1 
    
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 
    
    -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 
    
    -DWITHOUT_PARTITION_STORAGE_ENGINE=1 
    
    -DWITH_SSL=yes 
    
    -DENABLED_LOCAL_INFILE=1 
    
    -DWITH_ZLIB=bundled 
    
    -DWITH_READLINE=1
    
    # 生产环境确定字符集为utf-8,那就添加这两句
    
    # -DDEFAULT_CHARSET=utf8 
    
    # -DDEFAULT_COLLATION=utf8_general_ci 

      3. 编译并安装

    make && make install

      4.  创建软链接

    ln -s mysql-5.5.58/ mysql     # 做一个软链接
    
    # 假如数据库没有和web服务放在一起,配置到此结束,和web服务放在一起,继续往下配置

      5. 选择配置文件

    cd到 原码文件目录下, ll support-files/ | grep "my.*.cnf$"  # 有5个初始配置模板
    # # 这5个文件,应用场景不同,对应级别硬件配置,硬件配置越高,选择默认模版越大 虚拟机使用 my-small.cnf: cp support-files/my-small.cnf /etc/my.cnf # 把这个配置文件拷贝到/etc目录下,覆盖

      6. 创建放数据库数据文件目录

    mkdir /application/mysql/data -p      
    
    # 创建data存放数据的目录,实质上编译的时候,就指定了目录,会创建一个数据目录
    

       7. 授权mysql用户管理

    chown -R mysql.mysql /application/mysql/
    
    # 授权mysql安装目录给mysql用户管理,注意后面的 / 没有斜杠单独这个软链接授权,加上这个斜杠表示该目录和目录下所有内容授权

      8. 初始化数据库

    /application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql
    
    # 初始化数据库,将会在 /application/mysql/data/ 目录生成mysql库和performance_schema配置库
    # --basedir 安装目录
    # --datadir 存放数据目录
    # --user 服务运行用户

      9. 配置mysql数据库服务启动脚本

    # 从源码文件中的support-files/目录下,拷贝mysql启动脚本mysql.server到/etc/init.d/目录下
    
    cp support-files/mysql.server /etc/init.d/mysqld
    
    # 拷贝到  /etc/init.d/ 启动目录下,然后就可以通过  /etc/init.d/mysqld start启动数据库
    
    vim /etc/init.d/mysqld 	
    # 编辑这个脚本,更改以下两个参数
        basedir=/application/mysql/    # 指定安装路径
        datadir=/application/mysql/data/    # 指定数据路径
    
    chkconfig --add mysqld
        # 添加到 chkconfig 管理
    
    chmod u+x /etc/init.d/mysqld
        # 授权,执行权
    
    chkconfig mysqld on
        # 让其开机自启动
    

      10. 启动msyql服务 

    /etc/init.d/mysqld start

    如何直接输入mysql进入mysql数据库?

           常规启动 /application/mysql/bin/mysql, 全路径启动

      1. 把mysql命令添加到环境变量中

    vim /etc/profile      # 最后一行加入一行:
    export PATH="/application/mysql/bin/:$PATH"
    . /etc/profile           # 让修改生效
    # echo 'export PATH="/application/mysql/bin/:$PATH"' >> /etc/profile

    启动数据库出现的错误:

      ERROR! MySQL server PID file could not be found!

      原因可能是:启动脚本中有两个参数未指定

    vim /etc/init.d/mysqld          # 编辑这个脚本,指定两个路径,
            basedir=/application/mysql/                    # 指定安装路径
       datadir=/application/mysql/data              # 指定数据路径
    # 如果修改了这两个参数,还是报这个错误,直接删除 /data 数据目录,重新做数据库初始化,也就是重新执行 mysql_install_db 命令,然后提示有两种启动方式,两者不要混用,不然就会报这个错误

      2. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/application/mysql-5.5.58/mysql.sock' (2)

        原因: /etc/my.cnf 配置文件问题

        解决方法:

                 从源码文件中把 my-small.cnf 文件拷贝覆盖掉 my.cnf文件

      3. Starting MySQL.. ERROR! The server quit without updating PID file (/application/mysql/data//db01.pid)

        这个问题是无法创建 PID file ,也就是数据没有权限,那么需要把msyql这个安装目录全部授权给msyql用户管理

      4.  171215 22:35:46 mysqld_safe mysqld from pid file /application/mysql/data/web01.pid ended

        这个问题的原因是:

          没有把安装目录授权给mysql用户,当我授权的时候,只是给对应的软链接进行了mysql用户授权

          命令后少了个斜杠,毕竟软链接也是文件,没有授权通过mysql_install_db并不能创建msyql.sock文件,所以启动服务失败

                  如何解决?

                         ll /application/mysql/                 # 检查软件授权情况,看主和组是否是mysql

                         chown -R mysql:mysql /application/mysql/            # 特别注意软链接后面那个斜杠

    安装初始化的数据库默认没有密码,可以直接执行mysql命令执行,那如何给初始化密码?

    mysqladmin -u root password 'password'        # 设置密码
    mysql -u root -p                                       # 输入密码直接进入,显示公开的数据信息

    对数据库设置了密码,还需要进行哪些操作?

    select user,host from mysql.user                    
        #查看用户信息把空白信息删除掉
    drop user ""@localhost;                  
    drop user ""@web01; 
        #这两行空参数,要适合指定的机器,不同机器两行参数名字不一样
    select user,host from mysql.user;         
        # 检查
    drop database test;               
        # 删除test测试数据库,这个数据库不安全

    如何查看数据库相关信息?

    select version();           # 查看当前版本
    select user();                # 查看当前用户
    select user, host from mysql.user # 查看用户信息,需要把空的删掉
  • 相关阅读:
    边工作边刷题:70天一遍leetcode: day 52
    边工作边刷题:70天一遍leetcode: day 53-1
    边工作边刷题:70天一遍leetcode: day 53
    边工作边刷题:70天一遍leetcode: day 54
    边工作边刷题:70天一遍leetcode: day 55
    JavaScript 组件化开发之路(一)
    Promise
    HTML5 API 之 history
    时隔一年,window.scroll
    sublimeLinter-jshint 配置
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/8118140.html
Copyright © 2011-2022 走看看