zoukankan      html  css  js  c++  java
  • LInux下安装Mysql

    1. Mysql下载:从官网下载需要的mysql安装包:https://www.mysql.com/downloads/ or http://dev.mysql.com/downloads/mysql/。选择Community→MYSQL Community Server(GPL)→Linux-Generic选择需要的版本即可,本次安装下载的版本为:mysql-test-5.7.17-linux-glibc2.5-x86_64.tar.gz

    2. 检查你所用的Linux下有没有安装过mysql,没有卸载干净
    rpm -qa|grep -i mysql检查是否安装了mysql,有的话全部卸掉
    rpm -e mysql-5.7.13-linux-glibc2.5-x86_64 --nodeps 强制卸除
    3. 创建mysql的用户组/用户, data目录及其用户目录
    在这步之前一定要先确保你所建的用户以及用户组没有存在,要不然在后面的过程中会报错,删除时候
    要先删除用户在删除用户组名。
    userdel mysql #删除用户
    groupdel mysql #删除用户组名
    mkdir /home/mysql #在home文件夹下创建mysql
    groupadd mysql #创建一个名为mysql的用户组
    useradd -g mysql -d /home/mysql mysql #在用户组下创建用户
    4. 解压安装包并将解压包里的内容拷贝到mysql的安装目录/home/mysql
    tar -zxvf XXX.tar.gz
    cd XXX
    mv * /home/mysql
    5. 初始化mysql数据库
    cd /home/mysql
    5.7新特性需要运行:
    运行./bin/mysqld --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data --initialize报错:
    ./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
    解决办法: yum install libaio* 自动安装这两个包
    其他版本运行:
    ./bin/mysqld_install_db --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data
    安装成功后:
    2017-02-17T08:36:05.914355Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2017-02-17T08:36:06.885084Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2017-02-17T08:36:07.022957Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2017-02-17T08:36:07.087779Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 20305996-f4ec-11e6-90f4-005056878563.
    2017-02-17T08:36:07.089250Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2017-02-17T08:36:07.090938Z 1 [Note] A temporary password is generated for root@localhost: .vR8gaai!Z6e
    6. 检查mysql服务是否可以启动:
    cd /home/mysql
    ./supprot-files/mysql.server start
    Starting Mysql...OK!
    可能报错找不到路径,需要修改配置文件或者建立软连接
    # ./support-files/mysql.server start
    ./support-files/mysql.server: line 276: cd: /usr/local/mysql: No such file or directory
    Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
    由上面可知mysql的tar.gz安装包的默认安装目录为/usr/local/mysql, 这时候我们需要修改/support-files/mysql.server文件的basedir和datadir目录路径为我们环境所在的mysql的basedir和datadir路径, 如下:
    # vim support-files/mysql.server
    --------------------------
    ...
    basedir=/home/mysql
    datadir=/home/mysql/data
    ...
    --------------------------
    # ./support-files/mysql.server start
    start Starting MySQL.. OK!
    创建软连接
    # ln -s /home/mysql/bin/mysql /usr/bin/mysql
    删除软连接:rm -rf mysql,不要带/,否则会将源文件删除掉
    7. 创建配置文件:
    将默认的my.cnf备份,如果没有则创建my.cnf
     mv /etc/my.cnf /etc/my.cnf.bak
    将安装目录下的my-default.cnf拷贝到/etc下面
    cd /home/mysql/support-files
    cp my-default.cnf /etc/my.cnf
    设置编码为utf8,以防止乱码
    vim /etc/my.cnf
    [mysqld]
    basedir = /home/mysql
    datadir = /home/mysql/data
    character_set_server=utf8
    init_connect='SET NAMES utf8'
    [client]
    default-character-set=utf8
    8. 配置mysql服务开机自动启动
    # cp /home/mysql/support-files/mysql.server /etc/init.d/mysqld  
    # 拷贝启动文件到/etc/init.d/下并重命令为mysqld
    # chmod 755 /etc/init.d/mysqld                               # 增加执行权限
    # chkconfig --list mysqld                                    # 检查自启动项列表中没有mysqld这个,
    # chkconfig --add mysqld                                     # 如果没有就添加mysqld:
    # chkconfig mysqld on                                        # 用这个命令设置开机启动:
    9. mysql服务启动/重启/停止
    # service mysqld start                                               # 启动服务
    # service mysqld restart                                             # 重启服务
    # service mysqld stop                                                # 停止服务
    10. 初始化mysql用户root的密码
    # cd /home/mysql
    # ./bin/mysqladmin -u root -p '**mjT,#x_5sW' password '123456' mysqladmin:  # 刚刚之前的初始密码
    [Warning] Using a password on the command line interface can be insecure.
    Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
    mysql> use mysql
    Database changed
    mysql> update user set authentication_string = PASSWORD('123456') where user = 'root';
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    Rows matched: 2 Changed: 0 Warnings: 1
    mysql> \s
    --------------
    mysql Ver 14.14 Distrib 5.7.13, for linux-glibc2.5 (x86_64) using EditLine wrapper
    Connection id:  3
    Current database:   mysql
    Current user:   root@localhost
    SSL:    Not in use
    Current pager:  stdout
    Using outfile:  ''
    Using delimiter:    ;
    Server version: 5.7.13 MySQL Community Server (GPL)
    Protocol version:   10
    Connection: Localhost via UNIX socket
    Server characterset:    utf8
    Db characterset:    utf8
    Client characterset:    utf8
    Conn. characterset: utf8
    UNIX socket:    /tmp/mysql.sock
    Uptime: 1 hour 29 min 17 sec
    Threads: 1 Questions: 50 Slow queries: 0 Opens: 136 Flush tables: 1 Open tables: 129 Queries per second avg: 0.009
    --------------
    可能会出现密码错误登陆不进去的情况:
    1)使用service mysqld stop停止服务,然后使用./home/mysql/bin/mysqld_safe --skip-grant-tables &启动mysql服务,

    2)输入 ./home/mysql/bin/mysql -u root -p 回车进入
               >use mysql;
               update mysql.user set authentication_string=password('123456') where user='root';
               > flush privileges; 更新权限
               > quit 退出

    11. mysql远程授权
    重新启动mysql服务,使用修改后的密码登陆,有可能进去mysql后提示ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.需要执行下

    SET PASSWORD = PASSWORD('123456');问题解决

    [root@testfornss ~]# mysql -u root -p
    mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    mysql>
    grant all on *.* to 'root'@'%' identified by '123456';
    参考博文:http://www.cnblogs.com/gaojupeng/p/5727069.html
    http://blog.csdn.net/zl17/article/details/8589454
  • 相关阅读:
    汉诺塔
    给出一个字符串,要求插入最少的字符,使得原字符串为一个回文串
    最长回文子串
    回文数 第N个回文数
    屋子里有1到100号100盏关闭的灯
    无头结点的单链表删除一个中间结点
    单链表逆转
    编程之美2.21 加法
    在一个数组中找 差值最大的两个数 差值最小的两个数 推广到 点对
    斐波那契
  • 原文地址:https://www.cnblogs.com/chengssblog/p/6547840.html
Copyright © 2011-2022 走看看