zoukankan      html  css  js  c++  java
  • centos7.3 安装 mysql5.7.13

     系统环境:

    [root@localhost ~]# cat /etc/RedHat-release 
    CentOS release 6.7 (Final)
    [root@localhost tools]# uname -a
    Linux localhost 2.6.32-573.22.1.el6.x86_64 #1 SMP Wed Mar 23 03:35:39 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
    [root@localhost tools]# 
    软件准备:
    [root@localhost tools]# pwd
    /opt/tools
    [root@localhost tools]# ll
    total 674208
    -rw-r--r-- 1 root root 639864682 Jul 22 17:47 mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz
    -rw-r--r-- 1 root root  50516207 May 25 12:01 mysql-5.7.13.tar.gz
    [root@localhost tools]#
    解压安装:
    [root@localhost tools]# tar xf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz 
    [root@localhost tools]# ll
    total 674212
    drwxr-xr-x 9 7161 wheel      4096 May 25 15:04 mysql-5.7.13-linux-glibc2.5-x86_64
    -rw-r--r-- 1 root root  639864682 Jul 22 17:47 mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz
    -rw-r--r-- 1 root root  50516207 May 25 12:01 mysql-5.7.13.tar.gz
    [root@localhost tools]# 
    [root@localhost tools]# mv mysql-5.7.13-linux-glibc2.5-x86_64 /usr/local/mysql
    [root@localhost tools]#
    初始化操作(生成初始密码):
    [root@localhost mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
    2016-07-22T09:58:15.001776Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2016-07-22T09:58:15.062066Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2016-07-22T09:58:15.073009Z 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: cebfb8a6-4ff2-11e6-8c8d-005056a01a07.
    2016-07-22T09:58:15.074370Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2016-07-22T09:58:15.075736Z 1 [Note] A temporary password is generated for root@localhost: k_1ljzVh3<-,
    [root@localhost mysql]#
    PS: mysql5.7新特性:由上面可以看出, mysql_install_db 已经不再推荐使用了,建议改成 mysqld --initialize 完成实例初始化。
     
    加入MySQL为系统服务:
    [root@localhost mysql]# cp support-files/mysql.server  /etc/init.d/mysqld
    [root@localhost mysql]# chkconfig mysqld on
    [root@localhost mysql]# chkconfig --list|grep mysqld
    mysqld          0:off  1:off  2:on    3:on    4:on    5:on    6:off
    [root@localhost mysql]#chmod 755 /etc/init.d/mysqld
     
    MySQL服务启动、重启、停止
    [root@localhost mysql]# serivce mysqld start
    [root@localhost mysql]# serivce mysqld stop
    [root@localhost mysql]# serivce mysqld restart
    [root@localhost mysql]# 
    设置环境变量:
    [root@localhost mysql]# vim /etc/profile
    export PATH=/usr/local/mysql/bin:$PATH
    [root@localhost mysql]#
    检查MySQL是否能开启

    [root@localhost mysql]# cd /usr/local/mysql
    [root@localhost mysql]# cd support-files/
    [root@localhost support-files]# ./mysql.server start
    Starting MySQL.. SUCCESS! 
    若改用了, 则在启动服务时会出现如下错误:
    # ./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)
    这时候我们需要修改/support-files/mysql.server文件的basedir和datadir目录路径为我们正确的mysql的basedir和datadir路径, 如下:
    # vim support-files/mysql.server
    --------------------------
    ...
    basedir=/usr/local/mysql
    datadir=/data/mysql/data
    ... 
    --------------------------
    # ./support-files/mysql.server start
    Starting MySQL.. SUCCESS! 
    创建配置文件
    将默认生成的my.cnf备份
    # mv /etc/my.cnf /etc/my.cnf.bak
    [root@localhost support-files]# cp my-default.cnf  /etc/my.cnf
    初始化mysql用户root的密码
    先将mysql服务停止
    # service mysqld stop
    进入mysql安装目录, 执行:
    # cd /usr/local/mysql
    # ./bin/mysqld_safe --skip-grant-tables --skip-networking&
    [1] 6225
    [root@localhost mysql]# 151110 02:46:08 mysqld_safe Logging to '/data/mysql/data/localhost.localdomain.err'.
    151110 02:46:08 mysqld_safe Starting mysqld daemon with databases from /data/mysql/data


    另外打开一个终端(p.s. 如果是ssh连接登录的, 另外创建一个ssh连接即可), 执行操作如下:


    # mysql -u root mysql
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A


    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 2
    Server version: 5.7.13 MySQL Community Server (GPL)
    Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


    mysql> use mysql;
    Database changed
    mysql> UPDATE user SET password=PASSWORD('123456') WHERE user='root';
    ERROR 1054 (42S22): Unknown column 'password' in 'field list'
    mysql> update user set authentication_string = PASSWORD('123456') where user = 'root';
    Query OK, 1 row affected, 1 warning (0.02 sec)
    Rows matched: 1  Changed: 1  Warnings: 1


    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)


    mysql> \s
    mysql  Ver 14.14 Distrib 5.7.13, for linux-glibc2.5 (x86_64) using  EditLine wrapper


    Connection id:          62
    Current database:
    Current user:          root@localhost
    SSL:                    Not in use
    Current pager:          stdout
    Using outfile:          ''
    Using delimiter:        ;
    Server version:        5.7.13-log 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:            /data/AEData/mysql/data/mysql.sock
    Uptime:                46 min 54 sec


    Threads: 6  Questions: 6846  Slow queries: 0  Opens: 257  Flush tables: 1  Open tables: 201  Queries per second avg: 2.432
    --------------


    mysql> 
    到此, 设置完mysql用户root的密码且确保mysql编码集是utf8, 注意上面, 新版本的mysql.user表里的密码字段是authentication_string


    MySQL远程授权
    格式如下:
    mysql> grant all [privileges] on db_name.table_name to 'username'@'host' identified by 'password';
    示例如下:


    mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
    Query OK, 0 rows affected, 1 warning (0.04 sec)


    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)
    mysql> 
    或用
    mysql> grant all on *.* to 'root'@'%' identified by '123456';

    到此, 完成了mysql的安装 及配置!!!

    附上配置文件:
    [client] 
    loose_default-character-set = utf8 
    [mysqld] 
    basedir = /usr/local/mysql 
    datadir = /data/mysql/data 
    port = 3306 
    server_id = 1 
    socket = /data/mysql/data/mysql.sock 
    expire_logs_days      = 7 
    innodb_file_per_table 
    innodb_buffer_pool_size        = 2G 
    innodb_thread_concurrency      = 24 
    innodb_flush_log_at_trx_commit  = 1 
    innodb_log_buffer_size          = 32M 
    innodb_log_file_size            = 256M 
    innodb_log_files_in_group      = 3 
    innodb_max_dirty_pages_pct      = 90 
    innodb_lock_wait_timeout        = 120 
    wait_timeout            = 60  
    interactive_timeout    = 7200 
    skip-name-resolve 
    character-set-server    = utf8 
    back_log                = 50 
    max_connections        = 3000 
    max_connect_errors      = 32 
    max_allowed_packet      = 32M 
    binlog_cache_size      = 8M 
    max_heap_table_size    = 512M 
    tmp_table_size          = 64M 
    key_buffer_size        = 16M 
    read_buffer_size        = 2M 
    read_rnd_buffer_size    = 8M 
    bulk_insert_buffer_size = 64M 
    sort_buffer_size        = 4M 
    join_buffer_size        = 2M 
    thread_cache_size      = 64 
    thread_stack            = 192K 
    query_cache_type        = 1 
    query_cache_size        = 256M 
    query_cache_limit      = 2M 
    ft_min_word_len        = 2 
    default_storage_engine  = INNODB 
    #default_table_type    = INNODB 
    transaction_isolation  = REPEATABLE-READ 
    lower_case_table_names  = 1 
    #log_slow_queries 
    slow_query_log 
    long_query_time = 2 
    log-short-format 
    myisam_sort_buffer_size        = 128M 
    myisam_max_sort_file_size      = 10G 
    myisam_repair_threads          = 1 
    [mysqldump] 
    quick 
    max_allowed_packet = 32M 
    routines 
    single-transaction 
    hex-blob 
    skip-comments  
    complete-insert  
    skip-disable-keys  
    skip-add-locks  
    skip-lock-tables  
    [isamchk]  
    key_buffer      = 512M 
    sort_buffer_size = 512M 
    read_buffer      = 8M 
    write_buffer    = 8M 
    [myisamchk] 
    key_buffer      = 512M 
    sort_buffer_size = 512M 
    read_buffer      = 8M 
    write_buffer    = 8M 
    [mysqlhotcopy] 
    interactive-timeout 
    # Remove leading # to set options mainly useful for reporting servers. 
    # The server defaults are faster for transactions and fast SELECTs. 
    # Adjust sizes as needed, experiment to find the optimal values. 
    # join_buffer_size = 128M 
    # sort_buffer_size = 2M 
    # read_rnd_buffer_size = 2M  
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

     上面的内容转载自:https://www.linuxidc.com/Linux/2016-07/133688.htm?hmsr=toutiao.io

    安装或使用过程出现的问题

     1.bin/mysqld: error while loading shared libraries: libnuma.so.1

       解决方法:如果安装mysql出现了以上的报错信息.这是却少numactl这个时候如果是Centos就yum -y install numactl就可以解决这个问题了. 
                         ubuntu的就sudo apt-get install numactl就可以解决这个问题了

    The server quit without updating PID file  原因安装时的设置的datadir basedir 在mysql运行时找不到对应目录

       解决方法:

       1).ps aux|grep mysql 或 ps aux|grep mysqld

       2).kill  -9 上述的mysql服务

       3).vim  xxx/mysql/support-files/mysql.server  修改basedir=xxx/mysql  datadir=自己设置的data位置(如我设置在/data/mysql/data)

       4).移动mysql.serve文件 cp mysql.server /etc/init.d/mysqld (注意/etc/init.d/中 原有的mysqld 需要移除)

       5).vim /etc/my.cnf  修改basedir datadir 与 3)一样的路径 (我这里忘了修改导致出错)

       6).修改datadir的权限 如mkdir  /data/mysql  ,mkdir data/mysql/data ,chown -R mysql:mysql  /data/mysql  (若没有mysql用户,通过groupadd mysql; useradd -r -g mysql mysql 添加)

       7).systemctl restart mysqld

    重启MySQL的时候出现Warning: Unit file of mysql.service changed on disk, ‘systemctl daemon-reload‘ recommended.错误,根据提示,

      解决方法:

     systemctl daemon-reload

     正常重启MariaDB

     systemctl restart mysql

      即可。其他服务出现类似的情况,也可以使用systemctl daemon-reload来解决。

     bash:mysql:command not found

      解决方法

     

      有以下几种错误原因:
         1、如果你是使用的 rpm 的安装方式安装的,那么可能的情况就是你没有安装 client 包。
         2、如果你已经安装了还是报这个错的话,那么你可以再重装一遍。(本人将client包重新安装后登录成功)
         3、系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。

            3.1、首先得知道mysql命令或mysqladmin命令的完整路径
              比如mysql的路径是:
              /usr/local/mysql/bin/mysql,我们则可以这样执行命令:
              ln -s  /usr/local/mysql/bin/mysql    /usr/bin

           3.2、取得命令执行的绝对路径:whereis   
           

  • 相关阅读:
    windows 查看某个端口号被占用情况
    C# 配置文件ini操作类
    C#:如何解决WebBrowser.DocumentCompleted事件的多次调用
    什么是异或_异或运算及异或运算的作用
    UID卡、CUID卡、FUID卡的区别
    C#获取窗口大小和位置坐标 GetWindowRect用法
    C#中SetWindowPos函数详解
    C#让电脑发声,播放声音
    C#自动缩进排列代码的快捷键 c# 代码重新排版 变整齐
    安卓手机USB无法共享、上网或卡顿的解决方法
  • 原文地址:https://www.cnblogs.com/indifferent/p/10977894.html
Copyright © 2011-2022 走看看