MySQL常用操作


更改root密码

首先查看MySQL服务有没有启动:ps aux |grep mysql

没启动把它启动:/etc/init.d/mysqld start

然后用命令:mysql -uroot quit退出来

mysql命令是不能直接在root用户下用的,因为他在/usr/local/mysql/bin/mysql目录下,

需要更改环境变量PATH,增加mysql绝对路径:export PATH=$PATH:/usr/local/mysql/bin/

要想永久生效需要把它放到:vi /etc/profile 配置文件里,放到最后边

执行:source /etc/profile 环境变量才能生效

命令:mysql -uroot -p -p指定他的密码,如果密码为空直接回车就进来了

怎样设置root密码:mysqladmin -uroot password '123456789' (例如我们设12345789)

命令:mysql -uroot -p123456789  -p参数意思是指定他的密码

更改密码:mysqladmin -uroot password '123456789' password '987654321'

密码重置

 第一步,更改配置文件:vi /etc/my.cnf//增加skip-grant 意思是忽略授权

 wKiom1mVTteiSO0hAABmCo9Xj2M973.png 

 第二步,重启mysql服务:/etc/init.d/mysqld restart

 第三步,登录mysql输命令:mysql -uroot 直接就进来来 不需要密码

 第四步,切换到mysql库里边更改一个表:use mysql;

 第五步,输入命令:update user set password=password('aminglinux') where user='root'; 里  边横线部分  输入你要改的密码,更改完quit退出来

 第六步,在编辑:vi /etc/my.cnf 把skip-grant去掉 因为一直加着它其他用户也不需要密码这样不  安全

 第七步,重启:/etc/init.d/mysqld start



连接MySQL

 方法有几种:

 1.连接本机:mysql -uroot -p123456

 2.连接远程(比如A服务器跟B服务器)需要输入它的IP、端口,-P选项,意思是指定端口:

 mysql -uroot -p123456 -h127.0.0.1 -P3306

 3.利用socket来链接它,-S来指定它的socket,这种方法只适合在本机:

 mysql -uroot -p123456 -S/tmp/mysql.sock

 mysql -uroot -p123456 -e “show databases” -e意思是把所有的数据库都列出来,这种情况使用在shell脚本里边

wKiom1mVdqGBZ68-AADytSECJd4294.png


MySQL常用命令

 运行mysql的命令必须要先连接mysql,在mysql里边运行这些命令,在外边是不能识别的,同样外边的  命令在里边也不能识别。

 进入mysql命令:mysql -uroot -p123456789

 查询库:show databases;

 切换库:use mysql;

 查看库里的表:show tables;

 查看表里的字段:desc tb_name;

 查看表怎么创建的:show create table tb_name\G; 命令后边跟你要查看的表,\G意思是它的竖排显  示

 查看当前用户:select user();

 查看当前使用的数据库:select database();

 创建库:create database db1; (db1,是自己起的库名字)

 创建表:先进入到库里边use db1; 在创建表(例如创建一个叫t1的表):create table t1(`id`  int(4), `name` char(40));

 查看当前数据库版本:select version();

 查看数据库状态:show status;

 查看各参数:show variables; show variables like 'max_connect%';

 修改参数:set global max_connect_errors=1000;

 查看队列:show processlist; 更完整的查看:show full processlist;


MySQL创建用户以及授权

 grant all on *.* to 'user1' identified by 'passwd'; passwd意思是你自己设置的密码

 创建:grant all on *.* to 'user1'@'127.0.0.1' identified by 'passwd';

 登录:mysql -uuser1 -ppasswd -h127.0.0.1

 grant all on *.* to 'user1'@'localhost' identified by 'passwd'; 给他授权localhost这样就不  用-h指定IP了

 mysql -uuser1 -ppasswd

 根据具体的权限去授权:grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd';

 针对所有的IP去授权:grant all on db1.* to 'user3'@'%' identified by 'passwd';

 查看所有的授权:show grants; 需要指定用户加IP:show grants for user2@192.168.133.1;


常用SQL语句

 怎么查看其它库里的表:select count(*) from mysql.user;

 查看库里所有的内容:select * from mysql.db;

 查看一个字段:select db from mysql.db;

 查看两个字段:select db,user from mysql.db;

 模糊查询:select * from mysql.db where host like '192.168.%'\G;

 插入内容数据:insert into db1.t1 values (1, 'abc');

 三行都生效:update db1.t1 set name='aaa' where id=1;

 清空一个表:truncate table db1.t1;

 直接删除表:drop table db1.t1;

 把数据库也删了:drop database db1;


MySQL数据库的备份与恢复

 备份库:后边跟你的库,密码然后把它备份到一个文件里  mysqldump -uroot -p123456 mysql > /tmp/mysql.sql

 恢复库 mysql -uroot -p123456 mysql < /tmp/mysql.sql

 备份表 mysqldump -uroot -p123456 mysql user > /tmp/user.sql 先库在表

 恢复表 mysql -uroot -p123456 mysql < /tmp/user.sql

 备份所有库 mysqldump -uroot -p -A >/tmp/123.sql

 只备份表结构 mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql


NFS服务搭建与配置


NFS介绍

NFS服务需要借助RPC协议实现通信

NFSNetworkFileSystem的缩写

1.NFS最早由Sun公司开发,分234三个版本,23Sun起草开发,40开始Netapp公司与并主导开发,最新为41版本

2.NFS数据传输基于RPC协议,RPCRemoteProcedureCall的简写。

3.NFS应用场景是:ABC三台机器上需要保证被访问到的文件是一样的,A共享数据出来,BC分别去挂载A共享的数据目录,从而BC访问到的数据和A上的一致

NFS架构

wKiom1mWglmghOCOAABz1dCUdM4254.png

NFS原理图

wKioL1mWgnrhVACzAAEzN68yKxY610.png


NFS服务端安装配置

首先要准备两台机器,一个作为它的客户端一个作为他的服务端。

第一步,在客户端和服务端上安装两个包:yum install -y nfs-utils rpcbind 

第二步,在客户端编辑配置文件:vim /etc/exports //加入如下内容: 

/home/nfstestdir 意思是你要分享出去的目录,这个目录是不存在的,你需要创建它

192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)意思是指定你要跟哪台机器去分享共享这个目录

保存配置文件后,执行如下准备操作 

创建目录:mkdir /home/nfstestdir 

更改目录权限:chmod 777 /home/nfstestdir

查看一下监听端口:netstat -lntp 你会发现rpcbind(111)端口已经启动了

启动rpcbind端口:systemctl start rpcbind 一般安装完之后他自动就会起来

启动NFS服务:systemctl start nfs

查看一下:ps aux |grep nfs

systemctl enable rpcbind 

开机自启命令:systemctl enable nfs


NFS挂载选项

1.rw

2.ro只读

3.sync同步模式,内存数据实时写入磁盘

4.async非同步模式

5.noroot-squash客户端挂载NFS共享目录后,root用户不受约

束,权限很大

6.root-squash与上面选项相对,客户端上的root用户收到约束,

被限定成某个普通用户

7.all-squash客户端上所有用户在使用NFS共享目录时都被限定为

一个普通用户

8.anonuid/anongid和上面几个选项搭配使用,定义被限定用户

uidgid


exportfs命令

常用选项 

-a 全部挂载或者全部卸载

-r 重新挂载

-u 卸载某一个目录

-v 显示共享目录

以下操作在服务端上

vim /etc/exports //增加

/tmp/ 192.168.65.136/24(rw,sync,no_root_squash)单独共享给一个IP,不再限制root用户

exportfs -arv //不用重启nfs服务,配置文件就会生效


NFS客户端问题

客户端文件属主属组nobody,NFS 4版本会有该问题

问题1.客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody

解决办法1:客户端挂载时加上-o nfsvers=3

客户端和服务端都需要

解决方法2:编辑配置文件Vim /etc/idmapd.conf

把"#Domain=local.domain.edu"改为"Domain=xxx.com"(这里的xxx.com,随意定义吧),然后再重rpcidmapd服务没有这个服务启动rpcbind服务就行