mysql DB(学习笔记)

来源:互联网 发布:ipv6域名服务器配置 编辑:程序博客网 时间:2024/05/12 06:25
mysql DB(学习笔记)

1、mysql数据库有两种驱动:
MySQL Connector/J Driver、MMMysql driver。

2、导入导出数据库命令:(bin目录下)
导出:mysqldump -u root -p bokele   >c:/mysql.sql   --default-character-set=gbk  
导入:C:/mysql/bin/> mysql -u root -p <C:/helloapp/schema/sampledb.sql  --default-character-set=gbk  
说明:C:/mysql/bin/表示进入mysql程序根目录
C:/helloapp/schema/sampledb.sql是要导入数据库的文件的位置
c:/mysql.sql是导出的sql文件
--default-character-set=gbk   指编码方式

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:/mysql/bin/> 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:/windows/my.ini或者c:/winnt/my.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,但服务器识别不出来,终于搞清了!!!