2010年(27)
分类:
2010-03-29 14:20:26
1.1 启动数据库服务器 在终端中输入命令#service mysqld start
1.2 开机自启动设置 在终端中输入命令#chkconfig mysqld on
2.1 当首次安装完成mysql后,其默认超级用户为root ,并且密码为空。
2.2 下面给出了连接服务器常用的选项:
#mysqladmin –u root –p password newXXX –h serverhostname –protocal=tcp –P 3306 - -default-character-set=utf8 databasename
- -default-character-set设置使用的字符集,显示所有字符集列表使用mysql>show collation;
-port=n 默认使用端口3306,单独设置请查阅/etc/my.cnf
-protocal=tcp 使用的协议方式四种:tcp(网络连接),socket(Linux/Unix的本地连接),pipe
3.1 进入mysql,创建一个新用户xuys:
格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";
grant select,update,insert,delete on *.* to identified by "xuys1234";
查看结果,执行:
use mysql;
select host,user,password from user;
可以看到在user表中已有刚才创建的xuys用户。host字段表示登录的主机,其值可以用IP,也可用主机名,
将host字段的值改为%就表示在任何客户端机器上能以xuys用户登录到mysql服务器,建议在开发时设为%。
update user set host = '%' where user = 'xuys';
3.2 ./mysqladmin -uroot -p21century reload
./mysqladmin -uroot -p21century shutdown
3.3 ./mysqld_safe --user-root &
记住:对授权表的任何修改都需要重新reload,即执行第3步。
3.4 如果经过以上3个步骤还是无法从客户端连接,请执行以下操作,在mysql数据库的db表中插入一条记录:
use mysql;
insert into db values('192.168.88.234','%','xuys','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
update db set host = '%' where user = 'xuys';
重复执行上面的第2、3步。
3.1 登陆客户端
#mysql –u root –p
Enter password:XXX
3.2 添加新用户
sql>insert into mysql.user(host,user,password) values(‘%’,’John’,PASSWORD(‘Johnpassword’));
sql>flush privileges;
3.3 查看mysql的版本
sql>select version();
3.4 查看当前监听的端口
#netstat –tlp | grep mysql
3.5 查询结果到文本的输出(纵向文本显示,html格式显示,xml格式显示)
#mysql –u root –p - - vertical “- -execute=SELECT * FROM titles;” test>testfile.txt
#mysql –u root –p - - html “- -execute=SELECT * FROM titles;” test>testfile.txt
#mysql –u root –p - - xml - - default-character-set=utf8 “- -execute=SELECT * FROM titles;” test>testfile.txt
3.6 使用帮助,查询相关信息
sql>\h 列出所有命令清单
sql>help contents ;//根据分类列出可提供帮助的主题
sql>help data types
sql>help time
sql>grant all on *.* to John@’%’ identified by ‘JohnPassword’ [with grant option]
mysql的默认端口3306。
#mysql –h IP(或主机名) –u root –p
1)#vi /etc/sysconfig/network
HOSTNAME=newhostname
2)# vi /etc/hosts
newhostname
3)配置并启动samba服务器
#chkconfig - -list | grep smb //查看是否samba服务器开机自启动
#chkconfig smb on //设置为samba服务器开机自启动
#pgrep smbd 和pgrep nmbd 或 service smb status //查看是否进程在运行
#service smb start //启动服务
sql>status
许多主流的Linux发行版本把utf8,或latin1(ISO-8859-1)或latin2(ISO-8859-2)作为默认字符集。如果mysql程序和MySQL服务器在通信时使用的字符集不同,就会造成某些不常用的特殊字符无法正确显示。可以用以下两种方法解决:
1)像往常一样启动mysql程序,启动后立刻执行SQL命令set NAMES ‘languagename’,’languagename’为控制台窗口能够支持的某种字符集的名字。通常latin1或utf8字符集不会有什么问题。
2)使用如下命令连接服务器:
#mysql –h XXX –u root –p - -default-character-set=languagename
sql>create database mygbklib default character set gbk; //数据库的字符集
sql>create table Event(id int,name varchar(30)) default character set gbk; //某表使用的字符集
#mysql –h XXX –u root –p - -default-character-set=gbk; //连接字符集
sql>status //查看当前使用的字符集
在终端中,通过“终端”->“设定字符编码” //更改客户端字符集
1) linux下使用ODBC连接
由于ODBC本身也涉及到使用的字符集的问题,因此在数据源配置时,在stmt项中应添加set character set gbk(gb2312)。在应用程序中,也相应添加字符编码转换的代码,与下同。
2) linux下的其它连接
在程序的设计中在主函数main()中加入如下代码:
QTextCodec::setCodecForTr(QTextCodec::codecForName(“gb
//在数据库中写入中文字符
char chinese[50];
strcpy(chinese,”输入中文字符例”);
QString szChinese=QObject::tr(Chinese);
QString szCmd=QString(“insert into HELLO values(‘%
m_pDatabase->exec(szCmd);
加载驱动 在此系统中自带了mysql的数据库驱动libmyodbc3-
也可以到以下mysql官方网站下载最新ODBC驱动,网址为http://dev.mysql.com/downloads
5.1检索关于数据库、表、数据列等的元数据
sql>use information_schema; //此数据库非常重要
sql>show tables;
例:使用其中的表及其相应的含义
sql>desc information_schema.columns;
sql>select column_name,column_default,data_type,character_set_name,collation_name
from information_schema.columns
where table_schema=’mylibrary’ and table_name=’mytable’;
information_schema数据表家族
.tables 描述了所有数据表的属性
.columns 描述了所有数据列的属性
.views 描述了所有视图的属性
.table_constraints 所有数据表的主索引、唯一化索引、索引的清单
.key_column_usage 所有索引的清单,比table_constraints数据表包含更多的细节
.character_sets 所有可供选用的字符集清单
.user_privileges 全体用户的名单(来自mysql.user)