查看是否有安装数据库 :rpm -qa|grep -i mysqlhtml
如图已安装:mysql
未安装:sql
1 在终端下执行 mysql -V数据库
2 在help中查找 mysql --help |grep Distrib安全
3 在mysql 里查看 select version();服务器
4 在mysql 里查看 status;数据结构
mysql -h localhost -u 用戶名 -p密码 //连接数据库
use desk_show; //使用数据库
show tables; //显示数据表
describe desk6_0; //显示表结构架构
经过rpm查看ide
查看软件是否安装函数
首先咱们须要查看软件是否已经安装,或者说查看安装的软件包名称。如查找是否安装mysql
接着根据 rpm -ql 列出软件包安装的文件
使用 rpm -qal |grep mysql 查看mysql全部安装包的文件存储位置
Yum查找
除了rpm 查询还能够经过yum search 查找对应能够安装的软件包
其余查找方法
除了根据软件包来找文件位置以外,最经常使用的就是经过find查找某个关键字好比mysql全部包含mysql服务的文件路径
Which查找命令
Which命令是经过 PATH环境变量查找可执行文件路径,用于查找指向这个命令所在的文件夹
Whereis命令和find相似,不过不一样的是whereis是经过本地架构好的数据库索引查找会比较快。若是没有更新到数据库里面的文件或命令则没法查找到信息
mysql其余命令:
show databases; 显示数据库
create database name; 建立数据库
use databasename; 选择数据库
执行命令source /root/20151010.sql
drop database name 直接删除数据库,不提醒
show tables; 显示表
describe tablename; 显示具体的表结构
select 中加上distinct去除重复字段
mysqladmin drop databasename
删除数据库前,有提示。
显示当前mysql版本和当前日期
select version(),current_date;
root密码管理
设置root用户的密码 mysqladmin -uroot password 'password'
修改root用户的密码 mysqladmin -uroot -p password 'password'
数据库,表管理
进入mysql mysql -h hostname -uroot -p
建立数据库 mysql> create database location
导入数据结构 mysql -uroot -p location <./location.sql
查看数据库 mysql> show databases;
进入某个库 mysql> use location;
查看表信息 mysql> show tables;
查看表结构 mysql> desc Contact;
改表名 mysql> rename table Contact to Contact_new
删除库 mysql> drop database location
删除表 mysql> drop table Contact
受权部分
创建用户并受权 mysql> grant all on location.* to gk1020@'10.1.11.71' identified by 'gk1020'
取消受权 mysql> revoke all on location.* from gk1020@'10.1.11.71'
刷新权限 mysql> flush privileges
操做语句
查询 mysql> select * from Contact
mysql> select count(*) from Contact
修改 mysql> update Contact set RegTime=‘2008-01-01 00:00:00’ where id=1
mysql> update Contact set RegTime=‘2008-01-01 00:00:00’,CID=1 where id=1
插入 mysql> insert into Contact values('',''…)
mysql> insert into Contact(ID,CID,Contact) values('',''…)
删除 mysql> delete from Contact where id=1
备份数据库location mysqldump -uroot -p -l location >./location.sql
备份某个表 mysqldump -uroot -p -l --database location --table Contact >./contact.sql
导出数据库location的数据结构 mysqldump -d -uroot -p location >./location.sql
恢复数据库:mysql -uroot -p location < location.sql
备份数据文件和sql文件分离:mysqldump -uroot -p location contact -T backup/
导出数据: select * from contact into outfile 'contact.txt';
恢复sql文件:cat contact.sql | mysql -uroot -p location
导入数据(要跟绝对路径) mysqlimport -uroot -p zhang /usr/local/mysql/var/backup/contact.txt
复制表 复制表Contact为Contact_bak mysql> create table Contact_bak as select * from Contact
复制表Contact的结构 mysql> create table Contact_bak as select * from Contact where 1=2
查看正在执行的任务 mysql> show processlist
kill正在执行的任务 mysqladmin -uroot -p kill process_id
查看表状态:mysql> check table Contact or mysqlcheck -uroot -p -c location Contact
修复表: mysql> repair table Contact or mysqlcheck -uroot -p -r location Contact
优化表: mysql> optimize table Contact or mysqlcheck -uroot -p -o location Contact
———————————————-库操做———————————————-
1.①导出一个库结构
mysqldump -d dbname -u root -p > xxx.sql
②导出多个库结构
mysqldump -d -B dbname1 dbname2 -u root -p > xxx.sql
2.①导出一个库数据
mysqldump -t dbname -u root -p > xxx.sql
②导出多个库数据
mysqldump -t -B dbname1 dbname2 -u root -p > xxx.sql
3.①导出一个库结构以及数据
mysqldump dbname1 -u root -p > xxx.sql
②导出多个库结构以及数据
mysqldump -B dbname1 dbname2 -u root -p > xxx.sql
———————————————-表操做———————————————-
4.①导出一个表结构
mysqldump -d dbname1 tablename1 -u root -p > xxx.sql
②导出多个表结构
mysqldump -d -B dbname1 --tables tablename1 tablename2 -u root -p > xxx.sql
5.①导出一个表数据
mysqldump -t dbname1 tablename1 -u root -p > xxx.sql
②导出多个表数据
mysqldump -d -B dbname1 --tables tablename1 tablename2 -u root -p > xxx.sql
6.①导出一个表结构以及数据
mysqldump dbname1 tablename1 -u root -p > xxx.sql
②导出多个表结构以及数据
mysqldump -B dbname1 --tables tablename1 tablename2 -u root -p > xxx.sql
————————————–存储过程&函数操做————————————-
7.只导出存储过程和函数(不导出结构和数据,要同时导出结构的话,须要同时使用-d)
mysqldump -R -ndt dbname1 -u root -p > xxx.sql
———————————————-事件操做———————————————-
8.只导出事件
mysqldump -E -ndt dbname1 -u root -p > xxx.sql
—————————————–触发器操做——————————————–
9.不导出触发器(触发器是默认导出的–triggers,使用–skip-triggers屏蔽导出触发器)
mysqldump --skip-triggers dbname1 -u root -p > xxx.sql
————————————————————————————————
10.导入
mysql -u root -p
use game;
source xxx.sql
————————————————————————————————
总结一下:
-d 结构(--no-data:不导出任何数据,只导出数据库表结构)
-t 数据(--no-create-info:只导出数据,而不添加CREATE TABLE 语句)
-n (--no-create-db:只导出数据,而不添加CREATE DATABASE 语句)
-R (--routines:导出存储过程以及自定义函数)
-E (--events:导出事件)
--triggers (默认导出触发器,使用--skip-triggers屏蔽导出)
-B (--databases:导出数据库列表,单个库时可省略)
--tables 表列表(单个表时可省略)
①同时导出结构以及数据时可同时省略-d和-t
②同时 不 导出结构和数据可以使用-ntd
③只导出存储过程和函数可以使用-R -ntd
④导出全部(结构&数据&存储过程&函数&事件&触发器)使用-R -E(至关于①,省略了-d -t;触发器默认导出)
⑤只导出结构&函数&事件&触发器使用 -R -E -d
PS:若是可使用相关工具,好比官方的MySQL Workbench,则导入导出都是极为方便的,以下图。(固然为了安全性,通常状况下都是屏蔽对外操做权限,因此须要使用命令的状况更多些)
导入遇到问题 ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytes
使用Navicat For Mysql备份建新数据库的时候,表导入不了,查看日志,有脚本报错,原来是文件大于16M所致
报错信息以下:ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytes。
因而调整配置文件: /etc/my.cnf
修改mysql的最大容许包大小
在[mysqld]部分(不在这部分没用)添加一句:
max_allowed_packet=50M
重启mysql服务就能够了。
重启命令以下:
1、启动方式
一、使用 service 启动:service mysqld start
二、使用 mysqld 脚本启动:/etc/inint.d/mysqld start
三、使用 safe_mysqld 启动:safe_mysqld&
2、中止
一、使用 service 启动:service mysqld stop
二、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop
三、mysqladmin shutdown
3、重启
一、使用 service 启动:service mysqld restart
二、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart
迁移服务器,要把旧服务器上的mysql数据复制到新服务器的mysql上。
我先是把旧服务器的数据库用mysqldump复制了一份,而后想导入到新服务器,用命令导入,结果提示
网上说的方案,我在命令行加上--max_allowed_packet=128M
mysql --max_allowed_packet=128M -u user -ppass database < database.sql
结果仍是提示 Got a packet bigger than 'max_allowed_packet' bytes
而后我又尝试用MysqlWorkBench客户端导入,仍是提示 Got a packet bigger than 'max_allowed_packet' bytes 。
实在太奇怪了,明明这个.sql文件只有82K啊!
mysql -u root -p -e "set global net_buffer_length=1000000; set global max_allowed_packet=1000000000;"
而后重启 mysqld, 再正常导入就能够了……