五、数据库操作
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";