请问大家编写sh脚本操作mysql?
-
- 帖子: 4
- 注册时间: 2011-07-14 10:01
请问大家编写sh脚本操作mysql?
我想写一个SH脚本来操作MYSQL数据库,先建一个表,再然后插入一些数据。请问各位高手如何实现?
-
- 帖子: 319
- 注册时间: 2009-01-30 18:18
- 来自: 湖北十堰
Re: 请问大家编写sh脚本操作mysql?
请搜索网上,我给你个脚本吧
mysql -u用户 -p'密码' -e "use 数据库;INSERT INTO 表(各个列) VALUES('值')"
另外中文方面注意改正编码
MySQL中默认字符集的设置有四级:服务器级,数据库级,表级 。最终是字段级 的字符集设置。注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。所以我们建议要用show create table table ; 或show full fields from tableName; 来检查当前表中字段的字符集设置。
MySQL中关于连接环境的字符集设置有 Client端,connection, results 通过这些参数,MySQL就知道你的客户端工具用的是什么字符集,结果集应该是什么字符集。这样MySQL就会做必要的翻译,一旦这些参数有误,自然会导致字符串在转输过程中的转换错误。基本上99%的乱码由些造成。
上面是我抄网上的资料来的。我试了一下。发现
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
可以看出我当前联接系统参数出现了问题。现在的问题是到哪里把这些参数修改正确。
解决方法已经找到。进入数据后
use 数据库名;
names utf8;
不过这样会每次进入都必须重新设置。因此。还可以在/etc/mysql/my.conf里添加
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
default-character-set=utf8
这样数据库就不每次按照utf8字符集来导入到数据库了
mysql -u用户 -p'密码' -e "use 数据库;INSERT INTO 表(各个列) VALUES('值')"
另外中文方面注意改正编码
MySQL中默认字符集的设置有四级:服务器级,数据库级,表级 。最终是字段级 的字符集设置。注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。所以我们建议要用show create table table ; 或show full fields from tableName; 来检查当前表中字段的字符集设置。
MySQL中关于连接环境的字符集设置有 Client端,connection, results 通过这些参数,MySQL就知道你的客户端工具用的是什么字符集,结果集应该是什么字符集。这样MySQL就会做必要的翻译,一旦这些参数有误,自然会导致字符串在转输过程中的转换错误。基本上99%的乱码由些造成。
上面是我抄网上的资料来的。我试了一下。发现
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
可以看出我当前联接系统参数出现了问题。现在的问题是到哪里把这些参数修改正确。
解决方法已经找到。进入数据后
use 数据库名;
names utf8;
不过这样会每次进入都必须重新设置。因此。还可以在/etc/mysql/my.conf里添加
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
default-character-set=utf8
这样数据库就不每次按照utf8字符集来导入到数据库了
愿意同大家一起学习分享linux知识
-
- 帖子: 4
- 注册时间: 2011-07-14 10:01
Re: 请问大家编写sh脚本操作mysql?
谢谢二楼的朋友!我刚才按你的方法用了一下,做了个测试,可以了!
这是我刚测试的代码:希望也能给后来人一点点帮助!
#!/bin/bash
# 向mysql中写入数据
echo "start the mysql database"
sql="create database meeting;use meeting;create table test(id int primary key,name varchar(10));insert into test(id,name) values('5','lcp');"
echo "operating the mysql"
mysql -uroot -p123 -e"${sql}"
echo "successfully"
这是我刚测试的代码:希望也能给后来人一点点帮助!
#!/bin/bash
# 向mysql中写入数据
echo "start the mysql database"
sql="create database meeting;use meeting;create table test(id int primary key,name varchar(10));insert into test(id,name) values('5','lcp');"
echo "operating the mysql"
mysql -uroot -p123 -e"${sql}"
echo "successfully"
- linuxunion
- 帖子: 72
- 注册时间: 2006-02-17 23:30
Re: 请问大家编写sh脚本操作mysql?
建议用webmin吧,除了管理mysql外,ubuntu上几乎所有功能都可以通过web方式管理,还有基于web方式的teminal可以用
见惯不惊是我的座右铭!........
- tencrance
- 帖子: 51
- 注册时间: 2010-06-04 14:58
- 联系: