CentOS6.5 安装mysql-5.7.9

  安装前,需要检查是否已经有mysql服务进程,是否已经装过mysql;  这点很重要,我之前安装CentOS的同时,安装了mysql相关的东东,导致后面新安装mysql时,安装、启动时报了一堆的错。

 

例如:

Ignoring user change to 'laolv' because the user was set to 'mysql' earlier on the command line

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

mysql Unknown error 1045

 

参考网址

http://www.cnblogs.com/kreo/p/4392090.html

http://blog.csdn.net/chenggong2dm/article/details/6568862

http://tieba.baidu.com/p/3881791613

http://bbs.chinaunix.net/thread-3967681-1-1.html

 

一、卸载

卸载前关闭MySQL服务:

[laolv@centos65 Desktop]$ ps -ef | grep mysql

[laolv@centos65 Desktop]$ chkconfig --list | grep -i mysql

因为没有将mysql做成服务,那么查出进程号,直接

kill -9 pid

 

查找机器是否安装mysql,如果安装过则卸载

[root@centos65 ~]# rpm -qa | grep -i mysql

[root@centos65 ~]# rpm -ev mysql-libs-5.1.71-1.el6.x86_64 --force

rpm: only installation, upgrading, rmsource and rmspec may be forced

[root@centos65 ~]# rpm -ev mysql-libs-5.1.71-1.el6.x86_64 --nodeps

warning: /etc/my.cnf saved as /etc/my.cnf.rpmsave

 

 

删除mysql用户

[root@DB-Server ~]# id mysql 

uid=101(mysql) gid=501(mysql) groups=501(mysql) context=root:system_r:unconfined_t:SystemLow-SystemHigh 

[root@DB-Server ~]# userdel mysql

 

删除MySQL对应的文件夹:

[root@centos65 ~]# find / -name mysql

/home/mysql

/var/spool/mail/mysql

/var/lib/mysql

/var/lib/mysql/mysql

/mnt/hgfs/sharefiles/apache-hive-1.3.0-SNAPSHOT-bin/scripts/metastore/upgrade/mysql

/opt/hive/apache-hive-1.3.0-SNAPSHOT-bin/scripts/metastore/upgrade/mysql

/opt/softwares/mysql-5.7.9-linux-glibc2.5-x86_64/include/mysql

/opt/softwares/mysql-5.7.9-linux-glibc2.5-x86_64/bin/mysql

 

[root@centos65 ~]# rm -rf /var/lib/mysql/

[root@centos65 ~]# rm -rf /home/mysql/

[root@centos65 ~]# rm -rf /var/spool/mail/mysql

 

 

重启操作系统

 

二、安装

 

一般安装都是先创建 用户:组 mysql:mysql ,例如网址一

我这儿使用已经存在的用户:组 laolv:laolv

 

需要注意:

glibc版本的Mysql,不是编译版的,是直接编译好的,相当于windows的绿色版

CentOS默认yum源已经没有mysql-server了.而用mariadb代替,而2个数据库冲突,所以要安装mysql,要先卸载mariadb

我的机器上是没有mariadb的

 

[root@centos65 ~]# find / -name mariadb

[root@centos65 ~]# ps -ef | grep mariadb

root      4632  4475  0 16:32 pts/0    00:00:00 grep mariadb

[root@centos65 ~]# rpm -qa | grep -i mariadb

[root@centos65 ~]# 

 

[laolv@centos65 softwares]$ mv mysql-5.7.9-linux-glibc2.5-x86_64 mysql_5_7_9

[laolv@centos65 softwares]$ cd mysql_5_7_9

 

需要注意:

参考http://tieba.baidu.com/p/3881791613

 mysql_install_db 已经不再推荐使用了,建议改成 mysqld --initialize 完成实例初始化。

 

改成 mysqld --initialize 后,如果 datadir 指向的目标目录下已经有数据文件,则会有类似提示:

 [ERROR] --initialize specified but the data directory has files in it. Aborting.

 

另外,在初始化时如果加上 --initialize-insecure ,则会创建空密码的 root@localhost 账号,否则会创建带密码的 root@localhost 账号,密码直接写在 log-error 日志文件中(在5.6版本中是放在 ~/.mysql_secret 文件里,更加隐蔽,不熟悉的话可能会无所适从)

 

1.安装Mysql/初始化mysql数据库

 

[laolv@centos65 mysql_5_7_9]$ mkdir data

[laolv@centos65 mysql_5_7_9]$ ./bin/mysqld --user=laolv --basedir=/opt/softwares/mysql_5_7_9 --datadir=/opt/softwares/mysql_5_7_9/data  --initialize-insecure

2015-11-30T17:01:03.346374Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)

2015-11-30T17:01:03.359032Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)

2015-11-30T17:01:03.359397Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2015-11-30T17:01:03.788602Z 0 [Warning] InnoDB: New log files created, LSN=45790

2015-11-30T17:01:03.859671Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.

2015-11-30T17:01:03.899396Z 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: f0ac2cdd-9783-11e5-8670-000c292ec6d6.

2015-11-30T17:01:03.901991Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.

2015-11-30T17:01:03.903051Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

[laolv@centos65 mysql_5_7_9]$ 

 

2.开启mysql

(

注意 bin/mysqld_safe --user=laolv &

我没有在后面带& , &表示在后台运行,ctrl-c结束不掉进程的,需要kill -9 pid 结束进程的

)

[laolv@centos65 mysql_5_7_9]$ bin/mysqld_safe --user=laolv

151130 17:12:11 mysqld_safe Logging to '/opt/softwares/mysql_5_7_9/data/centos65.err'.

151130 17:12:12 mysqld_safe Starting mysqld daemon with databases from /opt/softwares/mysql_5_7_9/data

 

 

至此,mysql安装成功。

因为mysq处在运行状态,不要ctrl-c,再开一个ssh窗口,进行登录验证之类的..

 

[laolv@centos65 Desktop]$ ps -ef | grep mysql

laolv     8377  5342  0 17:12 pts/0    00:00:00 /bin/sh bin/mysqld_safe --user=laolv

laolv     8459  8377  0 17:12 pts/0    00:00:00 /opt/softwares/mysql_5_7_9/bin/mysqld --basedir=/opt/softwares/mysql_5_7_9 --datadir=/opt/softwares/mysql_5_7_9/data --plugin-dir=/opt/softwares/mysql_5_7_9/lib/plugin --user=laolv --log-error=/opt/softwares/mysql_5_7_9/data/centos65.err --pid-file=/opt/softwares/mysql_5_7_9/data/centos65.pid

laolv     8837  8823  0 17:15 pts/1    00:00:00 grep mysql

[laolv@centos65 Desktop]$ lsof -i:3306

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

mysqld  8459 laolv   20u  IPv6  70640      0t0  TCP *:mysql (LISTEN)

[laolv@centos65 Desktop]$ 

 

3.为mysql的root用户添加密码

[laolv@centos65 Desktop]$ vi ~/.bash_profile 

MYSQL_HOME=/opt/softwares/mysql_5_7_9

export MYSQL_HOME

 

PATH=$MYSQL_HOME/bin:$HIVE_HOME/bin:$HOME/bin:$PROTOBUF_HOME/bin:$JAVA_HOME/bin:$MAVEN_HOME/bin:$ANT_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$CMAKE_HOME/bin:$PATH

 

export PATH

 

[laolv@centos65 Desktop]$ su - laolv

密码:

[laolv@centos65 ~]$ which mysql

/opt/softwares/mysql_5_7_9/bin/mysql

[laolv@centos65 ~]$ mysql -uroot -p

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.9 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> 

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

4 rows in set (0.03 sec)

mysql> set password = password('forrest');

Query OK, 0 rows affected, 1 warning (0.01 sec)

 

mysql> exit

Bye

[laolv@centos65 ~]$ mysql -uroot -p

Enter password: 

此时需要输入密码了

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

4 rows in set (0.00 sec)

 

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> show tables;

+---------------------------+

| Tables_in_mysql           |

+---------------------------+

| columns_priv              |

| db                        |

| engine_cost               |

 

4. 关闭mysql

#关闭mysql

mysqladmin shutdown

 

#或

m

mysqladmin -uroot -p shutdown

 

mysql> exit

Bye

[laolv@centos65 ~]$ mysqladmin -uroot -p shutdown

Enter password: 

[laolv@centos65 ~]$ ps -ef | grep mysql

laolv    11656  9533  0 17:44 pts/1    00:00:00 grep mysql

[laolv@centos65 ~]$ 

 

5. 今后开启mysql

不再需要初始化了,直接

[laolv@centos65 mysql_5_7_9]$ bin/mysqld_safe --user=laolv

151130 17:46:41 mysqld_safe Logging to '/opt/softwares/mysql_5_7_9/data/centos65.err'.

151130 17:46:41 mysqld_safe Starting mysqld daemon with databases from /opt/softwares/mysql_5_7_9/data

 

另开终端

[laolv@centos65 ~]$ ps -ef | grep mysql

laolv    11815  5342  0 17:46 pts/0    00:00:00 /bin/sh bin/mysqld_safe --user=laolv

laolv    11895 11815  6 17:46 pts/0    00:00:00 /opt/softwares/mysql_5_7_9/bin/mysqld --basedir=/opt/softwares/mysql_5_7_9 --datadir=/opt/softwares/mysql_5_7_9/data --plugin-dir=/opt/softwares/mysql_5_7_9/lib/plugin --user=laolv --log-error=/opt/softwares/mysql_5_7_9/data/centos65.err --pid-file=/opt/softwares/mysql_5_7_9/data/centos65.pid

laolv    11932  9533  0 17:46 pts/1    00:00:00 grep mysql

[laolv@centos65 ~]$ mysql -uroot -p

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.9 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> show database;

 

 

你可能感兴趣的:(CentOS6.5 安装mysql-5.7.9)