原创文章,转载转载请注明地址:我的博客
数据库授权
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
- 安装卸载,会同时安装mysql包。默认安装5.0版本。
yum install mysql-server
yum remove mysql-server
- 配置
默认配置文件在/etc/my.cnf
默认datadir=/var/lib/mysql
默认socket=/var/lib/mysql/mysql.sock
mysqladmin、mysqldump等命令在/usr/bin
mysqld在/etc/init.d/mysqld - 命令
启动
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