linux centos5.8装yum安装mysql

 默认的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

原文地址:https://www.cnblogs.com/zhaoyunlong/p/10143541.html