/ 中存储网

教你如何在MySQL建立新数据库和表的语句

2014-09-19 00:31:16 来源:中存储网

1、mysql数据库有两种驱动:
MySQL Connector/J Driver、MMMysql driver。
2、导入导出数据库命令:(bin目录下)
导出:mysqldump -u root -p bokele >c:/mysql.sql --default-character-set=utf8  
导入:C:mysqlbin> mysql -u root -p <C:helloappschemasampledb.sql --default-character-set=utf8  
说明:C:mysqlbin表示进入mysql程序根目录
C:helloappschemasampledb.sql是要导入数据库的文件的位置
c:/mysql.sql是导出的sql文件
--default-character-set=utf8 指编码方式
3、修改root口令:(bin目录下)
bin>mysql -u root -p
mysql>set password for root@localhost=password('123');
说明:将root的口令设置为123
4、启动停止mysql客户程序(bin目录下)
1)mysql -u root -p
2)(输入密码)
3)create database SAMPLEDB
4)user SAMPLE
5)(各种sql操作)
6)exit(退出)
5、启动和停止mysql服务(命令行下)
启动:net start mysql    
停止:net stop mysql
6、注册和删除mysql服务(bin目录下)
注册:mysqld-nt --install       删除:mysqld-nt --remove
7、导入mysql数据库时出现:Data too long for column '***' at row *,
描述:mysql用UTF8字符集,备份文件(***.sql)是gbk格式的,运行C:mysqlbin> mysql -u root -p <C:***.sql --default-character-set=gbk后(gbk指备份文件的格式),出现上面问题。filename字段定义如下:`filename` varchar(255) binary NOT NULL default '',
分析:因为mysql用utf8编码,所以一个字节占24位(UTF8字符是可变长度,英文8位,中文24位,为满足全是中文情况,用24位表示),但mysql的varchar类型有最大长度,而255×24可能超过最大长度,所以报错。可见原备份文件建数据库时应该使用的不是UTF8,而应为一个字符占8位的latin1编码方式,找到问题答案。
解决:在建表文件顶端加入以下语句:
drop database if exists Web;//Web为要建的数据库
create database Web default charset=latin1 ;
use Web;
set   charset   latin1;
7. 配置字符集
建库时配置字符集
create database testxxx default charset=utf8
建表时配置字符集
CREATE TABLE `t_agent` (
`ID` smallint(5) NOT NULL
) DEFAULT CHARSET=utf8 ;
修改字符集
Windows平台
windows下的mysql配置文件是my.ini,一般在c:windowsmy.ini或者c:winntmy.ini可以直接在这个文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
然后重新启动mysql
service mysql restart

/etc/init.d/mysql restart
或用其他方法重新启动,就生效了。
[编辑]Unix平台
linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:
find / -iname my.cnf
在这个文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
然后重新启动mysql
8. 配置排序字符集
myisamchk -r -q --set-character-set=charset
9、本机或远程访问mysql时,mysql进行了权限控制,在mysql.user表中记录了访问主机IP和权限的关系 。
问题一:远程登陆mysql的话:
回复一:先在Mysql本机登录后,修改mysql.user表,其中hose=%表示远程连接的用户名,如果没有host=%的记录,你可以把host=localhost的两个记录的其中一个改过来,但一定要加上密码。
回复二: 假如Database:Test
创建用户:Jacky 密码: pwd
进入Mysql   
>grant insert,delete,update,select,drop,create on Test.* to Jacky@"%" identified by "pwd";    
回复三: 用它试试:
mysql>GRAND ALL ON DTBASE.* TO joe@192.168.0.2 IDENTIFIED BY "PASSWORD"   
//joe是用户名
问题二:本地登陆mysql的话:
max经验:我在本机用Mysql control center登陆mysql,但总是显示“ERROR 1130:Host 'taiji-renyang' is not allowed to connect to this MySQL server”,后来发现是因为mysql.user表中只有HostName为localhost的记录,而MySql control center的配置为HostName:192.168.8.99,虽然192.168.8.99就是我得IP,但服务器识别不出来,终于搞清了!!!
10.登陆url目前只能为:jdbc:mysql://localhost:3306/test,因为目前mysql数据库中user表只存了localhost这一个连接,如果用localhost的IP就不行,因为表中没有存。
11.
查看所有数据库语句为:show databases;
进入某个数据库:use ***;(*** stand for a database)
进入某数据库后查看此数据库中所有的表:show tables;
12.通过mysql control center导入导出sql语句:
a. 确保Mysql CC连接
b. 选择相应的库.表 =〉右键 =〉工具 =〉显示创建语句 =〉选中想要的表(可选择所有的表) =〉执行 => tools=>Show Create=>选中想要的表(可选择所有的表)=>Execuete
或者在sql中,执行:SHOW CREATE TABLE table_name;