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 意思是忽略授权
第二步,重启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脚本里边
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协议实现通信
NFS是NetworkFileSystem的缩写
1.NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4,0开始Netapp公司与并主导开发,最新为4.1版本
2.NFS数据传输基于RPC协议,RPC为RemoteProcedureCall的简写。
3.NFS应用场景是:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致
NFS架构
NFS原理图
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和上面几个选项搭配使用,定义被限定用户
的uid和gid
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服务就行