zoukankan      html  css  js  c++  java
  • Red Hat5.5 install Generic mysql-5.7.10

    1.确认以下依赖包已安装

    【ncurses ncurses-devel openssl-devel bison autoconf automake bison gcc m4 libtool make gcc-c++ cmake perl】

    [root@std ~]# rpm -qa|grep ncurses
    ncurses-5.5-24.20060715
    ncurses-devel-5.5-24.20060715
    [root@std ~]# rpm -qa|grep openssl
    openssl-0.9.8e-12.el5_4.6
    openssl-devel-0.9.8e-12.el5_4.6
    [root@std ~]# rpm -qa|grep bison
    bison-2.3-2.1
    [root@std ~]# rpm -qa|grep autoconf
    autoconf-2.59-12
    [root@std ~]# rpm -qa|grep automake
    automake14-1.4p6-13.el5.1
    automake15-1.5-16.el5.2
    automake-1.9.6-2.3.el5
    automake16-1.6.3-8.el5.1
    automake17-1.7.9-7.el5.2
    [root@std ~]# rpm -qa|grep gcc
    compat-libgcc-296-2.96-138
    compat-gcc-34-g77-3.4.6-4
    libgcc-4.1.2-48.el5
    gcc-c++-4.1.2-48.el5
    compat-gcc-34-3.4.6-4
    compat-gcc-34-c++-3.4.6-4
    gcc-java-4.1.2-48.el5
    gcc-4.1.2-48.el5
    gcc-gfortran-4.1.2-48.el5
    [root@std ~]# rpm -qa|grep m4
    m4-1.4.5-3.el5.1
    [root@std ~]# rpm -qa|grep libtool
    libtool-1.5.22-7.el5_4
    [root@std ~]# rpm -qa|grep make
    automake14-1.4p6-13.el5.1
    automake15-1.5-16.el5.2
    automake-1.9.6-2.3.el5
    imake-1.0.2-3
    make-3.81-3.el5
    automake16-1.6.3-8.el5.1
    automake17-1.7.9-7.el5.2
    [root@std ~]# rpm -qa|grep gcc-c++
    gcc-c++-4.1.2-48.el5


     

    2.建立用户及组

    [root@std ~]# groupadd mysql
    [root@std ~]# useradd -r -g mysql -s /bin/false mysql
    [root@std ~]#

    3.解压mysql包并建立软连接

    [root@std ~]# cp mysql-5.7.10-linux-glibc2.5-i686.tar.gz /usr/local/
    [root@std ~]# cd /usr/local/
    [root@std local]# tar -xzf mysql-5.7.10-linux-glibc2.5-i686.tar.gz 
    [root@std local]# ls -ld mysql-5.7.10-linux-glibc2.5-i686*
    drwxr-xr-x 9 7161 wheel      4096 Nov 30 04:47 mysql-5.7.10-linux-glibc2.5-i686
    -rw-r--r-- 1 root root  584116380 Feb  4 10:17 mysql-5.7.10-linux-glibc2.5-i686.tar.gz
    [root@std local]# ln -s mysql-5.7.10-linux-glibc2.5-i686 mysql
    [root@std local]# ls -ld mysql*
    lrwxrwxrwx 1 root root         32 Feb  4 10:29 mysql -> mysql-5.7.10-linux-glibc2.5-i686
    drwxr-xr-x 9 7161 wheel      4096 Nov 30 04:47 mysql-5.7.10-linux-glibc2.5-i686
    -rw-r--r-- 1 root root  584116380 Feb  4 10:17 mysql-5.7.10-linux-glibc2.5-i686.tar.gz

    4.配置mysql

    [root@std local]# cd mysql
    [root@std mysql]# mkdir {data,log}
    [root@std mysql]# ls -d data
    data
    [root@std mysql]# ls -d log
    log
    [root@std mysql]# cd ..
    [root@std local]# ll -d mysql
    lrwxrwxrwx 1 root root 32 Feb  4 10:29 mysql -> mysql-5.7.10-linux-glibc2.5-i686
    [root@std local]# chown -R mysql.mysql mysql
    [root@std local]# ll -d mysql
    lrwxrwxrwx 1 mysql mysql 32 Feb  4 10:29 mysql -> mysql-5.7.10-linux-glibc2.5-i686
    [root@std local]# ll -d mysql-5.7.10-linux-glibc2.5-i686
    drwxr-xr-x 11 7161 wheel 4096 Feb  4 10:31 mysql-5.7.10-linux-glibc2.5-i686
    [root@std local]# chown -R mysql.mysql mysql-5.7.10-linux-glibc2.5-i686
    [root@std local]# ll -d mysql-5.7.10-linux-glibc2.5-i686
    drwxr-xr-x 11 mysql mysql 4096 Feb  4 10:31 mysql-5.7.10-linux-glibc2.5-i686
    [root@std local]# cp mysql/support-files/my-default.cnf /etc/my.cnf
    [root@std local]# vi /etc/my.cnf 
    
    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
    # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
    # *** default location during install, and will be replaced if you
    # *** upgrade to a newer version of MySQL.
    
    [mysqld]
    
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    
    # These are commonly set, remove the # and set as required.
    # basedir = .....
    # datadir = .....
    # port = .....
    # server_id = .....
    # socket = .....
    
    # 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 
    
    [client]
    default-character-set = utf8
    port = 3306
    socket = /usr/local/mysql/mysql.sock
    
    [mysqld]
    character-set-server = utf8
    port = 3306
    socket = /usr/local/mysql/mysql.sock
    skip-name-resolve
    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data
    log-error = /usr/local/mysql/log/mysql_error.log
    pid-file =/usr/local/mysql/log/mysql.pid
    explicit_defaults_for_timestamp=true
    lower_case_table_names = 1
    query_cache_limit = 10M
    max_heap_table_size = 64M
    ~
    ~
    ~
    "/etc/my.cnf" 50L, 1582C written

    5.初始化数据库

    [root@std local]# /usr/local/mysql/bin/mysql_install_db 
    > --user=mysql 
    > --basedir=/usr/local/mysql 
    > --datadir=/usr/local/mysql/data
    2016-02-04 10:55:58 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize

    发现有报错,提示:MySQL 5.7.6 以上的版本使用mysqld --initialize进行初始化

    [root@std local]# /usr/local/mysql/bin/mysqld 
    > --initialize 
    > --user=mysql 
    > --basedir=/usr/local/mysql 
    > --datadir=/usr/local/mysql/data
    2016-02-04T02:59:41.907629Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
    2016-02-04T02:59:41.907698Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
    2016-02-04T02:59:41.910476Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
    2016-02-04T02:59:41.910635Z 0 [ERROR] Aborting

    发现有些启动参数必须设置:参考 http://blog.csdn.net/wyzxg/article/details/8787878
    提示data directory has files,即数据目录已经有文件了,清除数据目录里的文件

    配置sql_mode:

    [root@std data]# vi /etc/my.cnf 
    
    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
    # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
    # *** default location during install, and will be replaced if you
    # *** upgrade to a newer version of MySQL.
    
    [mysqld]
    
    
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    
    # These are commonly set, remove the # and set as required.
    # basedir = .....
    # datadir = .....
    # port = .....
    # server_id = .....
    # socket = .....
    
    # 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
    
    
    [client]
    default-character-set = utf8
    port = 3306
    socket = /usr/local/mysql/mysql.sock
    
    [mysqld]
    character-set-server = utf8
    port = 3306
    socket = /usr/local/mysql/mysql.sock
    skip-name-resolve
    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data
    log-error = /usr/local/mysql/log/mysql_error.log
    pid-file =/usr/local/mysql/log/mysql.pid
    explicit_defaults_for_timestamp=true
    lower_case_table_names = 1
    query_cache_limit = 10M
    max_heap_table_size = 64M
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER
    ~
    ~
    "/etc/my.cnf" 50L, 1657C written
    [root@std local]# pwd
    /usr/local
    [root@std local]# cd mysql/data/
    [root@std data]# ls
    auto.cnf    ca.pem      client-cert.pem  client-req.pem  ibdata1      ib_logfile1  performance_schema  server-key.pem  sys
    ca-key.pem  ca-req.pem  client-key.pem   ib_buffer_pool  ib_logfile0  mysql        server-cert.pem     server-req.pem
    [root@std data]# rm -rf *
    [root@std data]# ll
    total 0

    重新初始化:

    [root@std local]# /usr/local/mysql/bin/mysqld 
    > --initialize 
    > --user=mysql 
    > --basedir=/usr/local/mysql 
    > --datadir=/usr/local/mysql/data
    2016-02-04T03:27:21.900630Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
    2016-02-04T03:27:21.900825Z 0 [ERROR] Aborting

    发现还是提示同样的报错,删除之前建的data文件夹,由mysql自己创建data目录即可。

    [root@std mysql]# ls
    bin  COPYING  data  docs  include  INSTALL-BINARY  lib  log  man  README  share  support-files
    [root@std mysql]# rm -rf data
    [root@std mysql]# ll data
    ls: data: No such file or directory

    在重新初始化,没有任何提示,正常结束:

    [root@std mysql]# /usr/local/mysql/bin/mysqld 
    > --initialize 
    > --user=mysql 
    > --basedir=/usr/local/mysql 
    > --datadir=/usr/local/mysql/data
    [root@std mysql]#
    [root@std mysql]# /usr/local/mysql/bin/mysql_ssl_rsa_setup 
    Generating a
    2048 bit RSA private key ....................+++ ....................+++ writing new private key to 'ca-key.pem' ----- Generating a 2048 bit RSA private key ...............................................................+++ ..+++ writing new private key to 'server-key.pem' ----- Generating a 2048 bit RSA private key ......+++ .............................................................+++ writing new private key to 'client-key.pem' -----

    6.启动数据库

    [root@std mysql]# /usr/local/mysql/bin/mysqld_safe --user=mysql
    160204 12:27:53 mysqld_safe Logging to '/usr/local/mysql/log/mysql_error.log'.
    160204 12:27:53 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

    修改密码发现有权限问题:

    [root@std data]# /usr/local/mysql/bin/mysqladmin -u root password '123456'
    mysqladmin: connect to server at 'localhost' failed
    error: 'Access denied for user 'root'@'localhost' (using password: NO)'

    在mysql_error.log 日志里发现有初始密码:

    [root@std log]# tail -f mysql_error.log 
    2016-02-04T03:53:14.628582Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2016-02-04T03:53:15.260581Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2016-02-04T03:53:15.382168Z 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: d1b4565b-caf2-11e5-a1fe-000c29a3d3fb.
    2016-02-04T03:53:15.463227Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2016-02-04T03:53:15.465781Z 1 [Note] A temporary password is generated for root@localhost: F>nWo%wli60_
    2016-02-04T03:53:29.091095Z 1 [Warning] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.

    使用初始密码登录,发现登录不了:

    [root@std ~]# /usr/local/mysql/bin/mysql -u root -p 'F>nWo%wli60_'
    Enter password: 
    

    7.利用–skip-grant-tables的方式登录数据库服务器

    --kill掉mysql服务

    [root@std bin]# ps -ef|grep mysql |grep -v grep
    root     10546  8761  0 11:53 pts/3    00:00:00 tail -f mysql_error.log
    root     11188  5781  0 12:27 pts/2    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql
    mysql    11430 11188  0 12:27 pts/2    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/log/mysql_error.log --pid-file=/usr/local/mysql/log/mysql.pid --socket=/usr/local/mysql/mysql.sock --port=3306
    [root@std bin]# kill -9 11188
    [root@std bin]# kill -9 11430
    [root@std bin]# ps -ef|grep mysql |grep -v grep
    root     10546  8761  0 11:53 pts/3    00:00:00 tail -f mysql_error.log
    [root@std mysql]# /usr/local/mysql/bin/mysqld_safe --user=mysql
    160204 12:27:53 mysqld_safe Logging to '/usr/local/mysql/log/mysql_error.log'.
    160204 12:27:53 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
    
    Killed
    [root@std mysql]# 

    --修改my.cnf配置文件,增加skip-grant-tables配置

    [root@std mysql]# vi /etc/my.cnf 
    
    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
    # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
    # *** default location during install, and will be replaced if you
    # *** upgrade to a newer version of MySQL.
    
    [mysqld]
    
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    
    # These are commonly set, remove the # and set as required.
    # basedir = .....
    # datadir = .....
    # port = .....
    # server_id = .....
    # socket = .....
    
    # 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
    
    
    [client]
    default-character-set = utf8
    port = 3306
    socket = /usr/local/mysql/mysql.sock
    
    [mysqld]
    character-set-server = utf8
    port = 3306
    socket = /usr/local/mysql/mysql.sock
    skip-name-resolve
    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data
    log-error = /usr/local/mysql/log/mysql_error.log
    pid-file =/usr/local/mysql/log/mysql.pid
    explicit_defaults_for_timestamp=true
    lower_case_table_names = 1
    query_cache_limit = 10M
    max_heap_table_size = 64M
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER
    skip-grant-tables
    "/etc/my.cnf" 51L, 1675C written

    --启动mysql服务

    [root@std mysql]# /usr/local/mysql/bin/mysqld_safe --user=mysql
    160204 12:47:05 mysqld_safe Logging to '/usr/local/mysql/log/mysql_error.log'.
    160204 12:47:05 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

    --登录mysql服务,修改root密码

    [root@std bin]# /usr/local/mysql/bin/mysql -u root -p
    Enter password:    --直接回车
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 3
    Server version: 5.7.10 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
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    mysql> UPDATE user SET password=PASSWORD('123456') WHERE user='root';
    ERROR 1054 (42S22): Unknown column 'password' in 'field list'

    发现此处修改密码出错,该版本中user表已经没有password列:

    mysql> desc user ;
    +------------------------+-----------------------------------+------+-----+-----------------------+-------+
    | Field                  | Type                              | Null | Key | Default               | Extra |
    +------------------------+-----------------------------------+------+-----+-----------------------+-------+
    | Host                   | char(60)                          | NO   | PRI |                       |       |
    | User                   | char(32)                          | NO   | PRI |                       |       |
    | Select_priv            | enum('N','Y')                     | NO   |     | N                     |       |
    | Insert_priv            | enum('N','Y')                     | NO   |     | N                     |       |
    | Update_priv            | enum('N','Y')                     | NO   |     | N                     |       |
    | Delete_priv            | enum('N','Y')                     | NO   |     | N                     |       |
    | Create_priv            | enum('N','Y')                     | NO   |     | N                     |       |
    | Drop_priv              | enum('N','Y')                     | NO   |     | N                     |       |
    | Reload_priv            | enum('N','Y')                     | NO   |     | N                     |       |
    | Shutdown_priv          | enum('N','Y')                     | NO   |     | N                     |       |
    | Process_priv           | enum('N','Y')                     | NO   |     | N                     |       |
    | File_priv              | enum('N','Y')                     | NO   |     | N                     |       |
    | Grant_priv             | enum('N','Y')                     | NO   |     | N                     |       |
    | References_priv        | enum('N','Y')                     | NO   |     | N                     |       |
    | Index_priv             | enum('N','Y')                     | NO   |     | N                     |       |
    | Alter_priv             | enum('N','Y')                     | NO   |     | N                     |       |
    | Show_db_priv           | enum('N','Y')                     | NO   |     | N                     |       |
    | Super_priv             | enum('N','Y')                     | NO   |     | N                     |       |
    | Create_tmp_table_priv  | enum('N','Y')                     | NO   |     | N                     |       |
    | Lock_tables_priv       | enum('N','Y')                     | NO   |     | N                     |       |
    | Execute_priv           | enum('N','Y')                     | NO   |     | N                     |       |
    | Repl_slave_priv        | enum('N','Y')                     | NO   |     | N                     |       |
    | Repl_client_priv       | enum('N','Y')                     | NO   |     | N                     |       |
    | Create_view_priv       | enum('N','Y')                     | NO   |     | N                     |       |
    | Show_view_priv         | enum('N','Y')                     | NO   |     | N                     |       |
    | Create_routine_priv    | enum('N','Y')                     | NO   |     | N                     |       |
    | Alter_routine_priv     | enum('N','Y')                     | NO   |     | N                     |       |
    | Create_user_priv       | enum('N','Y')                     | NO   |     | N                     |       |
    | Event_priv             | enum('N','Y')                     | NO   |     | N                     |       |
    | Trigger_priv           | enum('N','Y')                     | NO   |     | N                     |       |
    | Create_tablespace_priv | enum('N','Y')                     | NO   |     | N                     |       |
    | ssl_type               | enum('','ANY','X509','SPECIFIED') | NO   |     |                       |       |
    | ssl_cipher             | blob                              | NO   |     | NULL                  |       |
    | x509_issuer            | blob                              | NO   |     | NULL                  |       |
    | x509_subject           | blob                              | NO   |     | NULL                  |       |
    | max_questions          | int(11) unsigned                  | NO   |     | 0                     |       |
    | max_updates            | int(11) unsigned                  | NO   |     | 0                     |       |
    | max_connections        | int(11) unsigned                  | NO   |     | 0                     |       |
    | max_user_connections   | int(11) unsigned                  | NO   |     | 0                     |       |
    | plugin                 | char(64)                          | NO   |     | mysql_native_password |       |
    | authentication_string  | text                              | YES  |     | NULL                  |       |
    | password_expired       | enum('N','Y')                     | NO   |     | N                     |       |
    | password_last_changed  | timestamp                         | YES  |     | NULL                  |       |
    | password_lifetime      | smallint(5) unsigned              | YES  |     | NULL                  |       |
    | account_locked         | enum('N','Y')                     | NO   |     | N                     |       |
    +------------------------+-----------------------------------+------+-----+-----------------------+-------+
    45 rows in set (0.01 sec)

    使用下面的语句修改密码:

    mysql> update user set authentication_string=password('123456'), password_expired='N' where user='root';
    Query OK, 1 row affected, 1 warning (0.01 sec)
    Rows matched: 1  Changed: 1  Warnings: 1
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> 

    --关闭mysql服务,去掉skip-grant-tables

    [root@std bin]# /usr/local/mysql/bin/mysqladmin -u root -p   shutdown 
    Enter password: 
    [root@std bin]# ps -ef|grep mysql|grep -v grep
    root     10546  8761  0 11:53 pts/3    00:00:00 tail -f mysql_error.log
    [root@std mysql]# vi /etc/my.cnf 
    
    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
    # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
    # *** default location during install, and will be replaced if you
    # *** upgrade to a newer version of MySQL.
    
    [mysqld]
    
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    
    # These are commonly set, remove the # and set as required.
    # basedir = .....
    # datadir = .....
    # port = .....
    # server_id = .....
    # socket = .....
    
    # 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
    
    
    [client]
    default-character-set = utf8
    port = 3306
    socket = /usr/local/mysql/mysql.sock
    
    [mysqld]
    character-set-server = utf8
    port = 3306
    socket = /usr/local/mysql/mysql.sock
    skip-name-resolve
    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data
    log-error = /usr/local/mysql/log/mysql_error.log
    pid-file =/usr/local/mysql/log/mysql.pid
    explicit_defaults_for_timestamp=true
    lower_case_table_names = 1
    query_cache_limit = 10M
    max_heap_table_size = 64M
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER
    ~
    "/etc/my.cnf" 50L, 1657C written

    --重新启动mysql服务,用新密码尝试登录

    [root@std bin]# ./mysql -u root -p
    Enter password:     --此时不输入密码回车
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
    
    [root@std bin]# ./mysql -u root -p
    Enter password:      --输入新密码
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 2
    Server version: 5.7.10 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> 

    --尝试启动时加上skip-grant-tables参数无密码登录

    -1-关闭数据库

    [root@std bin]# ./mysqladmin -u root -p shutdown 
    Enter password: 
    [root@std bin]# ps -ef|grep mysql|grep -v grep 
    root     10546  8761  0 11:53 pts/3    00:00:00 tail -f mysql_error.log

    -2-加上skip-grant-tables方式启动

    [root@std mysql]# /usr/local/mysql/bin/mysqld_safe --user=mysql --skip-grant-tables
    160204 13:19:21 mysqld_safe Logging to '/usr/local/mysql/log/mysql_error.log'.
    160204 13:19:21 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

    -3-尝试无密码登录

    [root@std bin]# ./mysql -u root -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 2
    Server version: 5.7.10 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> 

    在直接输入密码处直接回车登录数据库成功,省去了修改my.cnf文件的麻烦。

    此中方式启动,关闭的时候也不需要密码,直接回车即可:

    [root@std bin]# ./mysqladmin -u root -p shutdown 
    Enter password:    --直接回车

    8.配置mysql的启动环境,正常启动

    [root@std mysql]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
    [root@std mysql]# ln -s /usr/local/mysql/lib/* /usr/lib/
    ln: creating symbolic link `/usr/lib/pkgconfig' to `/usr/local/mysql/lib/pkgconfig': File exists
    [root@std mysql]# ln -s /usr/local/mysql/include/* /usr/include/
    [root@std mysql]# ldconfig
    [root@std mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    [root@std mysql]# chmod 755 /etc/init.d/mysqld 
    [root@std mysql]# chown mysql.mysql /etc/init.d/mysqld 
    [root@std mysql]# /etc/init.d/mysqld start
    Starting MySQL..
    [root@std init.d]# /etc/init.d/mysqld status
    MySQL running (13859)

    此时就可以随便在任何目录执行mysql命令了,不用写全路径了:

    [root@std ~]# mysql -V
    mysql  Ver 14.14 Distrib 5.7.10, for linux-glibc2.5 (i686) using  EditLine wrapper
    [root@std ~]# mysql -u root -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 4
    Server version: 5.7.10 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> select version() ;
    +-----------+
    | version() |
    +-----------+
    | 5.7.10    |
    +-----------+
    1 row in set (0.00 sec)
    
    mysql> 

    参考:

    http://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
    http://www.xker.com/page/e2015/07/211127.html
    http://www.2cto.com/database/201508/433985.html

  • 相关阅读:
    docker (centOS 7) 使用笔记3
    docker (centOS 7) 使用笔记4
    docker (centOS 7) 使用笔记2
    docker (centOS 7) 使用笔记1
    docker (centOS 7) 使用笔记3
    CentOS7 修改时区、charset
    p12(PKCS12)和jks互相转换
    tomcat7 日志设置为log4j
    Redis概述与基本操作
    Django学习笔记之安全
  • 原文地址:https://www.cnblogs.com/myrunning/p/5181438.html
Copyright © 2011-2022 走看看