mysql的操作《一》

本文介绍了MySQL数据库的多个操作,包括数据库授权、按日期分组、数据导出、数据库创建、Ubuntu数据库的远程访问设置,以及在CentOS上使用MySQL的步骤。此外,还详细讲解了mysqldump如何备份数据库和表,以及数据的导入方法。重点讨论了如何开启MySQL的远程访问功能,并处理跨系统和版本兼容问题。
摘要由CSDN通过智能技术生成

原创文章,转载转载请注明地址:我的博客

数据库授权

grantallprivilegeson 数据库名称.*to root@主机地址 identified by ‘密码’;
登录远程mysql服务器

mysql –h 192.0.0.2 –u root –p password

增加数据库最大连接数

  • 查询当前最大连接数
show variables like'%conn%';
  • 设置新的最大连接数为500
set GLOBAL max_connections=500;
  • 显示当前运行的Query
show processlist
  • 显示当前状态
show status

按日期分组

select date_format(l.createTime,'%Y-%m-%d %H:%i'),count(1)from tablename l 
where l.createTime>='2014-05-23 08:00:00'and l.createTime<'2014-05-23 09:00:00'group bydate_format(l.createTime,'%Y-%m-%d %H:%i');

数据导出

SELECT session_mark from OralVoice into outfile "/tmp/guo_1.txt";
SELECT session_mark from OralVoice_45 into outfile "/tmp/sun_1.txt";

数据库创建

CREATE DATABASE IF NOT EXISTS test_edu DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE IF NOT EXISTS test_edu DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database yourdb DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

Ubuntu数据库安装设置远程访问

默认Ubuntu安装mysql数据库的时候是绑定本地端口的如下:

sun@sun-VirtualBox:~/nodejs/express_test$ netstat -an | grep 3306
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN   

所以远程连接不上telnet ip port 打不开的。修改/etc/mysql/my.conf,注释如下:

bind-address     = 127.0.0.1

另:Ubuntu MySQL老的版本中 skip-networking => # skip-networking
运行 sudo /etc/init.d/ mysql restart 再次查看:

sun@sun-VirtualBox:~/nodejs/express_test$ netstat -an | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN  

这样,mysql就监听3306的网络端口了,下一步设置某些用户远程权限。

update user set host = '%' where user = 'root';
flush privileges;
select host, user from user; //检查'%' 是否插入到数据库中

ok.

在CentOs 上使用MySQL

  1. 安装卸载,会同时安装mysql包。默认安装5.0版本。
yum install mysql-server
yum remove mysql-server
  1. 配置
    默认配置文件在/etc/my.cnf
    默认datadir=/var/lib/mysql
    默认socket=/var/lib/mysql/mysql.sock
    mysqladmin、mysqldump等命令在/usr/bin
    mysqld在/etc/init.d/mysqld
  2. 命令
    启动
service mysqld start

停止

service mysqld stop

开机自启是用”chkconfig –levels 235 mysqld on”还是”chkconfig mysqld on”
如果启动报错,很可能是磁盘满了。
如果开启了selinux,可能会导致mysql启动不成功。另外要记得设置iptables的3306端口

Centos 安装Mysql

Solve: Can’t connect to local MySQL server through socket /tmp/mysql.sock
MYSQL: ERROR 2002 (HY000):Can't connect to local MySQL server

mysqldump备份一个库

#mysqldump db_name >/path/db_name.sql -uroot -p

备份某个表

#mysqldump db_name tab_name >/path/tab_name.sql -uroot -p

导入:

shell> mysqladmin create target_db_name
shell> mysql target_db_name < /path/db_name.sql -uroot -p

mysqldump比直接拷贝数据库文件夹速度要慢
但,直接复制文件夹会遇到不同mysql的版本兼容问题,也可能不能跨操作系统使用。
如果你想恢复的数据库是包含授权表的mysql数据库,你需要用–skip-grant-table选项运行服务器。否则,它会抱怨不能找到授权表。原创文章,转载转载请注明地址:我的博客

在你已经恢复表后,执行mysqladmin flush-privileges告诉服务器装载授权标并使用它们

mysqldump -uroot -proot -h192.168.0.1 -P3306 test T_USER --where="sex=1 and type=2 limit order by id desc limit 100" > /www/T_USER.sql

mysql -uroot -proot -h192.168.0.1 -P3306 test -e "select jjj from ttt" > /www/test.txt

恢复单个表较为复杂,如果你用一个由mysqldump生成的备份文件,并且它不包含你感兴趣的表 的数据,你需要从相关行中提取它们并将它们用作mysql的输入。
这是容易的部分。难的部分是从只运用于该表的更新日志中拉出片断。你会发觉 mysql_find_rows实用程序对此很有帮助,它从更新日志中提取多行查询

mysqldump -uroot -proot -h192.168.0.1 -P3306 test T_USER --where="sex=1 and type=2 limit order by id desc limit 100" > /www/T_USER.sql

原创文章,转载转载请注明地址:我的博客
参考:
http://www.cublog.cn/u/27383/showart_542561.html
MySQL dump by query

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值