默认的yum安装mysql都是5.1版本的 想要安装5.7的可以进行配置rpm包进行,
mysql5.7安装路径
下面是默认的5.1安装路径
首先我们在使用yum安装的的时候会默认使用最新安装的,最先的mysql会有很多的不同这个时候下面会一一进行展示
先查看本机上有没有mysql版本
yum list installed | grep mysql
如果有其他的版本的我们可以删除再安装
删除mysql:
yum remove mysql rm -rf /usr/local/mysql # 删除注册表 yum remove mysql* # 删除所有和mysql相关的信息 再执行:看看是否还有没删除干净的信息 rpm -qa|grep mysql
当上面的之行为完毕之后 如果没有其他的信息就再继续装
安装命令:
yum -y install mysql mysql-server mysql-devel
当所有的执行完毕之后验证是否安装成功:
输入命令:rpm -qi mysql-server
已经成功安装
下面就是启动mysql服务
service mysqld start
如何启动/停止/重启MySQL
一、启动方式
1、使用 service 启动:service mysqld start
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start
3、使用 safe_mysqld 启动:safe_mysqld&
二、停止
1、使用 service 启动:service mysqld stop
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop
3、 mysqladmin shutdown
三、重启
1、 使用 service 启动:service mysqld restart
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart
然后进入mysql
mysql -u root
这个时候进入的时候你要看看你的权限的,因为虽然是使用root登陆但是有的权限是不够的没有开放需要进行切换
执行:
show databases;
这个时候设置密码是不行的会报错
是因为mysql数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的,通过错误提示里的''@'localhost'可以看出来,于是解决办法:
法一: 1.关闭mysql # service mysqld stop 2.屏蔽权限 # mysqld_safe --skip-grant-table 屏幕出现: Starting demo from ..... 3.新开起一个终端输入 # mysql -u root mysql mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root'; mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误 mysql> \q
我们来使用忘记密码的方式修改密码:
就是要开两个界面:
其中一个执行:
第一第二步:
输入:
1、service mysqld stop # 先关闭服务 2、mysqld_safe --skip-grant-table # 跳过服务表
然后节目会停留在:
再开启一个节面进入数据库修改密码:
1、mysql -u root mysql 2、UPDATE user SET Password=PASSWORD('新密码') where USER='root'; 3、 FLUSH PRIVILEGES; # 这一步是必须的
这个时候执行第二步设置密码就可以了
上面是5.7一下的修改语句 5.7版本的执行:
5.7版本以上的执行
update user set authentication_string=password("新密码") where user='root';
然后再用新设置的密码的登陆就可以查看到mysql库了 然后就可以进行设置你的远程访问了,
因为是安装的最新的mysql,这个时候再执行远程访问的命令是不行的
执行以前版本的设置是报错的:GRANT ALL PRIVILEGES ON * . * TO ‘root’@’%’ IDENTIFIED BY ‘密码’ WITH GRANT OPTION;
问题是:
这是因为:新版SQL授权用户时报错 near 'IDENTIFIED BY '密码' with grant option' at line 1
原因:
因为新版的的mysql版本已经将创建账户和赋予权限的方式分开了
解决办法:
查找MySQL的安装目录找到mysql_upgrade :
1、whereis mysql_upgrade
2、cd /usr/bin/
3、./mysql_upgrade -uroot -p123 (123为密码)
效果:
这个时候再进入你的 mysql中执行:GRANT ALL PRIVILEGES ON * . * TO ‘root’@’%’ IDENTIFIED BY ‘密码’ WITH GRANT OPTION;
这个时候就可以通过远端进行链接了
还有另一种解决远程链接方法方法(我没试过哈哈):
先创建用户 后指定用户链接 1、创建用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明: username:你将创建的用户名 host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符% password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器 2、指定用户权限 授权: 命令: GRANT privileges ON databasename.tablename TO 'username'@'host'
GRANT ALL PRIVILEGES ON Django.* To'Test'@'%' IDENTIFIED BY 'test'; # 指定Test用户用对Djagno库的所有的权限,可以远程访问
说明: privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL databasename:数据库名 tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
第三种修改密码:
.修改MySQL的登录设置:
# vim /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip-grant-tables 保存并且退出vim
3.重新启动mysqld
# service mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
systemctl start mysqld(centos7) service mysqld start(centos6)
4.登录并修改MySQL的root密码
# mysql
5.7版本以上的执行 update user set authentication_string=password("新密码") where user='root';
MySQL [mysql]> update user set password=password(123456) where user='root'; Query OK, 3 rows affected (0.00 sec) Rows matched: 4 Changed: 3 Warnin
最后一定要删除/etc/my.conf 中的: 删除或注释skip-grant-tables
设置端口:
查看mysql端口可以在外部使用:netstat -ntlp 查看所有程序启动的端口
也可以在内部使用:
show global variables like 'port';
默认启动的是3306
我们也可以修改端口的
修改mysql启动端口
yum安装的配置信息一般都是/etc下的,所以我们要去、etc下去寻找配置信息进行修改mysql的配置信息在/etc/my.cnf内
vim /etc/my.cnf
默认是:
我们只需要设置端口即可:加入 port = 要启动的端口即可
然后退出 重启mysql服务
service mysqld restart
再查看端口就是我们配置的3307了
设置开机启动(非必须)
chkconfig mysqld on