mysql : (甲骨文公司Oracle) 数据库是我们平时用来存放数据的 存放动态数据 数据库的划分:整个分为关系型数据库,非关系型数据库 数据:描述事物的符号记录为数据(data)包括数字,文字,图形,图像,声音,档案记录等,以记录形式统一的格式进行存储。 表:将不同的记录组织在一起,就形成了表,是用来存储具体数据的 数据库:表的集合,是存储数据的仓库,以一定的组织方式存储的互相有关的数据,数据表多了放到目录里,目录就叫数据库 数据库:一种服务==mysql 关系型数据库:有关连的数据库 非关系数据库 : 键值对,类似于变量 sql:就类似于linux的命令,用来操作数据库的 产品阵营: 1阵营:5.0--5.1 2阵营: 5.4--5.7 3阵营:6.0--7.1 开始做mysql:(先将拉进来的压缩包解压) tar xf cmake-2.8.6.tar.gz -C /usr/src tar xf mysql-5.5.22.tar.gz -C /usr/src yum -y install ncurses-devel (devel: 系列) cd /usr/src/cmake-2.8.6 ./configure && gmake && gmake install (配置编译安装) (因为使用cmake编译mysql所以要先把cmake编译) useradd -M -s /sbin/nologin mysql (创建一个程序用户) cd /usr/src/mysql-5.5.22/其他 安装:# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all && make && make install /usr/local/mysql (mysql程序运行目录,我们启动,运行的时候是让他用程序用户mysql去运行的) chown -R mysql mysql/ (降权,如果不降权程序用户会进不去)或者用 chown -R mysql:root /usr/local/mysql这个命令也可以 /bin/cp my-medium.cnf /etc/my.cnf vim /etc/my.cnf (这里面一般不用动) cp mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld mysql的命令在/usr/local/mysql/bin ln -s /usr/local/mysql/bin/* /usr/local/bin (做个软连接,为了系统的env可以找到mysql的命令) /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ (安装mysql服务) /etc/init.d/mysqld start (启动) ss -antup : 端口号 Netid:协议 state:状态 listen是监听状态estab是表示连接上了 recv-Q :接收了多少流量 send-Q :发送流量 lal:本地监听端口号 peer:来源 netstat -antup==ss -antup mysql:可以本地登录也可以远程登录 创建密码 : mysqladmin -uroot password 123123 mysql 的账号是由两个部分决定的:账号部分和ip部分 mysql -uroot -p123123 -h :指定连接哪个数据库(服务器) -P : 指定端口号 qps:每秒查询数 show databases; :展示所有的数据库 show tables; :查看数据库下有什么 select now(); :显示时间 create database +要创建库的名称 ; :创建库 use +要切换库的库名; :切换库的命令如linux的cd select database( ); :查看当前所在库如linux命令的pwd drop database +要删除的库;:命令 drop tables +要删除的表名; :删除表 describe mysql.user; :描述mysql下user表 (field:字段 type:类型 char:字节 enum: null:是否为空 key:关键字 extra:备注) create table users(name char(30) not null,password char(40) default'',adrs char(10),primary key(name));(创建表命令) show variables like 'char%'; :查看输出窗口使用的字符编码 set character_set_results=latin1; :设置输出窗口使用的字符编码 show full tabales; :查看库下有什么表 drop user 'yunjisuan'@'192.168.182.130'; :删除用户,不让用户登录 drop table +要删除的表名或者是哪个库下的表 insert into yun2.users(name,password,adrs) values('xiao','123123','sh'); :向表里添加内容,(name,password,adrs) 这个内容可以不写,不写就是默认全部字段,内容修改需要一一对应 select * from +要看哪个库下的哪个表; :查看表下所有内容 select +要查看哪个字段 from +要看哪个库下的哪个表; :查看表下的具体哪个字段 delete from +从哪删 where +要删除什么例如:name='xioa'; :删除表里的数据,后面要写主键,也就是带有; 唯一性的 update +哪个库里的表 set +要更新的东西 例如: password='3333' where +从哪里更新例如: name='xioabai'; :是以一行一列定位的,更新数据 mysql.user :这个记录表记录的是我们数据库用户的数据表 select user,password,host from mysql.user; update mysql.user set password=password('123456') where user='root'; :改密码(要用函数加密) flush privileges; :更新一下,刷新命令 grant :授权命令 all:表示所有权限 *.* :表示所有库,所有表 grant all on *.* to 'yunjisuan'@'192.168.182.193' identified by'123123' :给192.168.182.193服务器yunjisuan账户所有库所有表的所有权限 select user,host from mysql.user; :查看给过谁权限 现在就可以去193服务器用yunjisuan账户登录了: mysql -uyunjisuan -p123123 -h192.168.182.129 show grants; :查看本地有什么权限,显示授权用户的安全权限 show grants for [email protected] : 查看别人有什么权限 MySQL通配符 : _ :任意单个字符 % :任意长度的任意字符 例如: grant all on *.* to 'yun'@'192.168.182.%' identified by'123123' :代表182网段的yun账户都可以登录(这里没有的用户会自动创建) show status; :显示广泛的服务器状态信息 help create database; :创建特定数据库 help create tables; :创建特定表 show errors; :显示服务器错误信息 show warnings; :显示警告信息 select user( ); :显示当前连接账户 select now( ); :显示当前时间 新建用户格式: create user '用户名'@'来源地址' identified by '密码' :新建用户,这个命令建完用户还需要给权限 例如: create user 'admin'@'%' identified by '123123'; 删除用户格式: drop user '用户名'@'来源地址'; 例如: drop user 'admin'@'%'; select user from mysql.user; :查看现有账户 为当前登录用户修改密码:set password=password('密码'); 为其他用户修改密码: set password for '用户名'@'来源地址'=password('密码'); 撤销权限格式: revoke 权限列表 on 库名.表名 from '用户名'@'来源地址'; 例如:revoke select on *.* from 'yuanjisuan'@'192.168.182.193'; (注:这个撤销权限是当时给了什么权限就只能撤销什么权限,不可以单门撤销一个单列的权限) super权限:超级权限 all:常用的普通权限 所有代表有了其中一个权限不一定代表有了另一个权限 (只能root去创建) mysql日志: 错误日志:error级别以上全部都记录 通用日志:什么都记录 二进制日志: 记录你所有的动作 慢速查询日志: 记录工作时间长的sql语句 reload :重新加载 改配置前要先把服务关了,改完后在启动 /etc/init.d/mysqld stop vim /etc/my.cnf 在[mysqld]模块最后添加 log-error=mysql_error.log (后面名随便起)(错误日志) 默认路径在/usr/local/mysql/data/下 log=/usr/local/mysql/data/mysql_general.log :通用日志 log-bin=mysql-bin :二进制日志,这个日志默认自带不用写创建 long_query_time=5 //单位为秒 (规定几秒后执行的命令算慢命令) log-slow-queries=mysql_slow.log 写完后启动服务 /etc/init.d/mysqld start 过滤一下端口 ss -antup | grep 3306 造成数据丢失的原因:程序错误(应用奔溃,没有对数据进行备份 ) 人为错误(执行了rm -rf *) 计算机失败(电脑坏了) 磁盘失效(磁盘不能使用,一般不会坏) (灾难(如火灾,地震,和盗窃)做备份:使用阿里云===在不同的地域买服务器,借助阿里云自己的基地,帮我们做灾备) 数据库备份分类: 冷备份:在关闭数据库的时候备份 热备份:在数据库运行的时候备份 温备份:把表直接锁定,只让读,不让写入,进行备份。 完全备份:每次对数据进行完整备份 差异备份: 备份那些自从上次完全备份之后被修改过的所有文件备份 增量备份: 只备份上次完全备份或者增量备份后被修改过的文件备份 完全备份: mysqldump -uroot -p123123 yun3 > yun3.sql (简单备份,不会打包) 进入到mysql里这里需要给他创建一个yun3,他只能备份数据,不备份数据库 cerate database yun3 use yun3 source /root/yun3.sql (恢复数据命令,这样就可以恢复数据了) mysqldump -uroot -p123123 --databases yun2 yun3 > yun.sql (加了--databases就是把库也一起备份了,不在需要到mysql里面建库了用source直接恢复就可以) --opt :加速作用 --all:所有 mysqldump -uroot -p123123 --opt --all -databases > all.sql (备份所有数据库,完全备份) mysql -uroot -p123123 < all.sql (恢复数据) 外部非交互式执行命令 : mysql -uroot -p123123 -e 'show databases;' (-e :非交互式)
标签:mysal,备份,usr,mysql,权限,数据库,user From: https://www.cnblogs.com/yangyu1123/p/16947849.html