一:安装
通过rpm检查是否存在MySQL
[root@host ~] rpm -qa|grep mysql
如果存在,执行下面的命令删除
[root@host ~] rpm -e --nodeps your_mysqlName
查看系统信息,寻找最新版的mysql
[root@host ~]# uname -r
[root@coderknock ~]# tar xvf mysql-5.7.17-1.el6.i686.rpm-bundle.tar
2.6.32-642.el6.i686
可以在浏览器打开sohu提供的MySQL镜像
选择MySQL-5.7
下载并解压的命令
[root@coderknock ~]# wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-1.el6.i686.rpm-bundle.tar
[root@coderknock ~]# tar xvf mysql-5.7.17-1.el6.i686.rpm-bundle.tar
安装rpm是有依赖关系的,依赖关系如下:
yum install -y make
yum install -y cmake
yum install -y gcc
yum install -y gcc-c++
yum install -y ncurses
yum install -y ncurses-devel
依次安装之后,开始安装MySQL
第一步,安装mysql-community-common
[root@coderknock ~]# yum localinstall mysql-community-common-5.7.17-1.el6.i686.rpm
第二步,安装mysql-community-libs
[root@coderknock ~]# yum localinstall mysql-community-libs-5.7.17-1.el6.i686.rpm
第三步,安装mysql-comunity-client
[root@coderknock ~]# yum localinstall mysql-community-client-5.7.17-1.el6.i686.rpm
第四步,安装mysql-community-server
[root@coderknock ~]# yum localinstall mysql-community-server-5.7.17-1.el6.i686.rpm
安装之后,查看一下版本
[root@coderknock ~]# mysql -V
显示内容之后,启动MySQL
[root@coderknock ~]# service mysqld start
MySQL Daemon failed to start.
Starting mysqld: [FAILED]
上面的启动失败,说明我们没有进行初始化
接下来,进行数据库初始化
[root@coderknock ~]# mysqld --initialize
初始的时候报错内容为:
2017-01-06T14:53:08.889803Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-01-06T14:53:08.892190Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2017-01-06T14:53:08.892475Z 0 [ERROR] Aborting
则不需要再初始化,清理一下/var/lib/mysql中的数据即可
即执行下面的命令,进行清理:
[root@coderknock ~]# rm -rf /var/lib/mysql
[root@coderknock ~]# service mysqld start
Initializing MySQL database: [ OK ]
Installing validate password plugin: [ OK ]
Starting mysqld: [ OK ]
如上,MySQL启动完毕。
但是,还是不能启动,如果报错内容为
[root@coderknock ~]# rm -rf /var/lib/mysql
[root@coderknock ~]# service mysqld start
Initializing MySQL database: [ OK ]
Installing validate password plugin: [ FAILED ]
这个时候,就需要看看3306端口是否被占用,如果被占用,就需要杀死进程,回收端口
执行下面的命令进行查看:
[root@coderknock ~]# lsof -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
lwfs 22065 root 6u IPv4 4395053 0t0 TCP *:irdmi (LISTEN)
根据下面的命令杀掉进程:
[root@coderknock ~]#
kill -9 PID
再通过lsof命令,检查一下3306端口是否被占用
没有的话,执行
[root@coderknock ~]# rm -rf /var/lib/mysql
[root@coderknock ~]# service mysqld start
Initializing MySQL database: [ OK ]
Installing validate password plugin: [ OK ]
Starting mysqld: [ OK ]
成功启动MySQL,如果还是不行,那么可能是以前安装MySQL的时候,把mysqld这个进程
设置为了开机启动,关闭mysqld的开机启动即可,命令如下:
查看开机启动服务列表:
[root@coderknock ~]# chkconfig --list
添加开机启动服务:
[root@coderknock ~]# chkconfig --add mysqld
移出开机启动服务:
[root@coderknock ~]# chkconfig --del mysqld
然后再执行,
[root@coderknock ~]# rm -rf /var/lib/mysql
[root@coderknock ~]# service mysqld start
Initializing MySQL database: [ OK ]
Installing validate password plugin: [ OK ]
Starting mysqld: [ OK ]
即可成功启动MySQL
MySQL5.6.6的以上版本都有一个密码验证的功能,所以,会有一个默认的密码,
可以在/var/log/my.log中找到
或者执行下面的命令
[root@coderknock ~]# grep 'temporary password' /var/log/mysqld.log
2017-01-06T14:53:33.490540Z 1 [Note] A temporary password is generated for root@localhost: Ei(GLix_p6/1
重置密码
登录进去之后,无论是获取到了默认密码还是强行修改了密码。新版MySQL在第一次通过密码登录后会无法执行SQL语句
mysql> select host from mysql.user where User='root';
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
所以,要用
mysql> ALTER USER 'root'@'%' IDENTIFIED BY '你的密码';
因为有密码验证插件,所以,密码包含字母,数字,符号,基本都可以通过验证,重置之后即可。
如果输入该命令后,还一直同样的错,可以执行
SET PASSWORD = PASSWORD('你的密码');
二:远程授权登录
如果想要设置远程登录linux服务器下的MySQL
1:登录到linux服务器上的MySQL:
使用mysql数据库(真正的数据库,而非数据库软件),将所有数据库的所有表(*.*)的所有权限(all privileges),
授予通过任何ip(%)访问的root用户,密码为123456,最后刷新(flush privileges)即可。
2:开放3306防火墙端口:
4:在填写连接的时候,用户名和密码均为第一步设置的用户和密码,Ip地址为服务器的IP地址
三:卸载MySQL
在卸载之前可以查看一下MySQL的版本,必须停止MySQL,如果你想备份一下数据,
可以执行
[root@coderknock ~]# mysqldump -u xxx -h xxx -P 3306 -p --all-databases > databases.sql
然后执行
[root@coderknock ~]# yum remove mysql mysql-*