1.centos7 怎样安装mysql
============================================================================================
安装步骤如下:
1.首先确认系统是否已经安装了mysql或者mariaDB
rpm -qa | grep mysql
rpm -qa | grep mariaDB
2.如果有相关安装包,则立即卸载
rpm -e --nodeps 安装包名称
如:rpm -e --nodeps mysql-community-client-5.1.18-1.el7.i686
注意:一定要将mariaDB包和自带mysql包卸载干净,否则安装时出现各种奇妙错误,导致失败。
3.去官网https://dev.mysql.com/downloads/mysql/下载相应版本的mysql。
我的CentOS7是32位的,所以选择了Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86,32-bit)。
最小安装下载四个文件即可:
mysql-community-common-5.7.19-1.el7.i686.rpm
mysql-community-libs-5.7.19-1.el7.i686.rpm
mysql-community-client-5.7.19-1.el7.i686.rpm
mysql-community-server-5.7.19-1.el7.i686.rpm
4.安装顺序:
rpm -ivh mysql-community-common-5.7.19-1.el7.i686.rpm
rpm -ivh mysql-community-libs-5.7.19-1.el7.i686.rpm
rpm -ivh mysql-community-client-5.7.19-1.el7.i686.rpm
rpm -ivh mysql-community-server-5.7.19-1.el7.i686.rpm
注意:common先装,libs依赖common,client依赖libs,server依赖common和client。
5.检查安装目录
执行whereis mysql出现下面的信息说明已经安装成功了。
mysql: /usr/bin/mysql /usr/lib/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
6.检查mysql配置文件
vi /etc/my.cnf
主要内容如下,一般什么都不需要更改,默认值即可。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
7.检查目录权限:
一定确保datadir设置的路径的所有组和所有者是mysql,如果不是则运行下面命令更改,如果不改则初始化会失败。
chown mysql:mysql -R /var/lib/mysql
8.关闭服务:
如果mysql服务打开,则将其关闭
service mysqld stop
9.这里是重点:一定要执行初始化!
mysqld --initialize -insecure --user=mysql
注意:这里一定要加上-insecure,这样mysql会创建一个没有密码的root账户,否则会创建有密码的,密码会写在/var/log/mysqld.log里面。
10.开启服务:
service mysqld start
11.登录账户:
如果创建了没有密码的root账户,则直接mysql回车,就会进入mysql了。
否则mysql -u root -p,输入密码。
至此,mysql的root账户可以登录本地的mysql了,但是默认不支持远程登录,以下是如何让root账户远程登录的流程:
12.使用数据库mysql
use mysql;
13.查询root账户信息
select * from user \G;
这样会看到root账户没有密码,那么我们给它加个密码,没有密码的root账户是不允许远程登录的。
14.修改root账户的密码:
必须修改两个全局参数:
set global validate_password_policy=0;
set global validate_password_length=1;
update user set aurhentication_string=PASSWORD(‘your password‘) where user=‘root‘;
注意:新版的mysql 5.7.15后需要上面的改法,因为字段变更为aurhentication_string了,网上烂大街那个不能用。
15.commit权限更改:
一定执行下面的语句,否则修改密码不生效。
flush privileges;
16.确认密码修改成功:
exit; 退出mysql
然后
mysql -u root -p
输入密码
17.登录成功后给root账户授权远程登录
GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘your password‘ WITH GRANT OPTION;
flush privileges;
注意:%表示任何机器都可远程mysql,如果把%变成某个ip,就是指定某个机器才可以远程登录。
18.尝试远程登录:
找个客户端,输入相关信息
主机名或ip:******
端口:3306
用户名:root
密码:your password
=====================================================================================
2.mysql 密码忘记了,怎么办?
====================================================================================
处理如下:
1.vi /etc/my.cnf
2.在[mysqld]中添加
skip-grant-tables
例如:
[mysqld]
skip-grant-tables
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
3.重启mysql
service mysql restart
4.用户无密码登录
mysql -uroot -p (直接点击回车,密码为空)
5.选择数据库
use mysql;
6.修改root密码
update user set authentication_string=password(‘123456‘) where user=‘root‘;
7.执行
flush privileges;
8.退出
exit;
9.删除
skip-grant-tables
10.重启mysql
service mysql restart