您的位置:首页 > 运维架构 > Linux

linux命令之数据库操作

2015-08-07 16:28 483 查看
五、数据库操作

 

1、mysql 重新启动

 

sudo  /etc/init.d/mysql   restart

 

ps:看/etc/mysql/my.conf 下的log的配置信息

     一般在/var/log/mysql/error.log

 

2、mysql 用root权限创建数据库之后,使其他用户可看:

 

grant  all  privileges  on  数据库名.*  to  普通用户@localhost  identified  by  '普通用户密码';

ps: localhost---本地

     %---远程可访问

     本地和远程分两次赋权限

 

flush  privileges;

 

3、mysql添加字段:

 

alter  table  表名  add  列名  类型  not  null  default  默认值  comment  '注释';

 

4、mysql复制表:

 

(1)复制表结构和数据

 

create  table  新表  select  *  from  旧表

 

(2)复制表结构

 

create  table  新表  select  *  from  旧表  where  1=2   ps: 即让where条件不成立

 

5、mysqldump拷贝数据库:

 

mysqldump  -h IP/主机名  -u用户名  -p密码  原数据库名  |  mysql  -h  IP/主机名  -u用户名  -p密码  新数据库名

 

6、mysql导入导出数据并加工:

 

mysql  -N  -uglz007  -pganlanzhi123  数据库  -e  "select  id,name  from  表名"  >  result.txt

 

cat  result.txt  | awk  '{print  "update  w_resume  set  name=\""$2"\"  where  id="$1}'  > result.sql

ps:生成的每一行是update  w_resume  set  name="第二行的内容"  where  id="第一行的内容"

time  mysql  -uglz007  -pganlanzhi123  数据库  < result.sql

 

7、批量更新数据:

 

update.sh

 

#!/bin/sh

 

tablename="w_resume"

user="glz007"

password="ganlanzhi123"

host="192.168.1.9"

update_field="name"

 

echo  "update  $tablename" > update.sql

echo  "  set  $update_field = case  id" >> update.sql 

cat source.txt | awk  '{print  "    when  "$1"  then  \""$2"\""}'  >> update.sql

echo  ";" >> update.sql

 

time  mysql  -u$user  -p$password  数据库名 < update.sql

 

8、从文件中直接充数据入mysql(文件列数与数据库表字段数相同):

 

mysql  --local-infile  -uroot  -pganlanzhi123  数据库名  -e "load  data  local  infile  '文件路径'  (ignore:忽略冲突的id,replace:替换冲突的id)  into  table  表名  character  set  utf-8";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 数据库