Heim >Datenbank >MySQL-Tutorial > 从安装mysql到初学时遇到的问题及解决方案
一、windows安装mysql1、设置系统环境变量在系统环境变量里新建系统变量变量名为:MYSQL_HOME变量值为:mysql的安装路径在Path路径里加一路经:%MYSQL_HOME%\\bi
一、windows安装mysql
1、设置系统环境变量
在系统环境变量里新建系统变量
变量名为:MYSQL_HOME
变量值为:mysql的安装路径
在Path路径里加一路经:%MYSQL_HOME%\bin
2、将my-default.ini改成my.ini
3、修改my.ini文件
basedir = \\mysql的安装路径
datadir = \\mysql的安装文件下bin目录的路径
port = 3306
4、启动mysql服务
进入命令行模式输入
net start MySQL 启动服务
net stop MySQL 关闭服务
5、修改root密码:
c:>mysql -u root 进入mysql
mysql>show databases;
mysql>use mysql;
mysql>update user set password=password("密码") where user='root';
mysql>flush privileges;
mysql>quit
二、连接MySQL
格式: mysql -h主机地址 -u用户名 -p用户密码
1、例1:连接到本机上的MYSQL。
mysql -u root -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接 回车即可进入到 MYSQL中了,MYSQL的提示符是: mysql>。
2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为: 110.110.110.110,用户名为root,密码为 abcd123。则键入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root可以不用加空格,其它也一样)
3、退出MYSQL命令: exit (回车)。
三、修改密码
格式:mysqladmin -u用户名 -p旧密码 password 新密码
1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然 后键入以下命令:
mysqladmin -uroot -password ab12
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了 。
2、例2:再将root的密码改为djg345。
mysqladmin -uroot -pab12 password djg345
四、增加新用户。(注意:和上面不同,下面的因为是MySQL环境中的 命令,香港服务器,所以后面都带一个分号作为命令 结束符)
格式:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"
例1、增加一个用户test1密码为abc,网站空间,让他可以在任何主机上登录,并对所有数据库有查询、插入、修 改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令:
grant select,insert,update,
delete on *.* to test2@localhost identified by \"abc\";
如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb
.* to test2@localhost identified by \"\";
在上面讲了登录、增加用户、密码更改等问题。下面我们来看看MySQL中有关数据库方面的操作。注意:你 必须首先登录到MySQL中,以下操作都是在MySQL的提示符下进行的,而且每个命令以分号结束。
五、字符集出现错误解决办法:
①、出现问题如下:
mysql> update users
-> set username='关羽'
-> where userid=2;
ERROR 1366 (HY000): Incorrect string value: '\xB9\xD8\xD3\xF0' for column 'usern
ame' at row 1
②、表中插入的字符显示出错如下:
mysql> select * from users;
+--------+----------+
| userid | username |
+--------+----------+
| 2 | ???? |
| 3 | ???? |
| 4 | ?í?ù |
+--------+----------+
3 rows in set (0.00 sec)
表中的中文字符位乱码。
使用命令status
mysql> status
--------------
mysql Ver 14.12 Distrib 5.0.45, for redhat-linux-gnu (i686) using readline 5.0 Connection id: 30
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout Using outfile: ''
Using delimiter: ;
Server version: 5.0.45 Source distribution
Protocol version: 10
Connection:Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1 Conn. characterset: latin1
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 33 days 58 min 53 sec
Threads: 1 Questions: 72 Slow queries: 0 Opens: 25 Flush tables: 1 Open tables: 18 Queries per second avg: 0.000
--------------
查看mysql发现Server characterset,Db characterset的字符集设成了latin1,所以出现中文乱码。mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| users |
+----------------+
1 row in set (0.00 sec)
更改表的字符集。
mysql> alter table users character set GBK;
Query OK, 3 rows affected (0.08 sec)
Records: 3 Duplicates: 0 Warnings: 0
查看表的结构:
mysql> show create table users;
+-------+-----------------------------------------------------------------------
------------------------------------------------------------------------------+
| Table | Create Table
|
+-------+-----------------------------------------------------------------------
------------------------------------------------------------------------------+
| users | CREATE TABLE `users` (
`userid` int(11) default NULL,
`username` char(20) character set latin1 default NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk |
+-------+-----------------------------------------------------------------------
------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> desc users;
+----------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------+------+-----+---------+-------+
| userid | int(11) | YES | | NULL | |
| username | char(20) | YES | | NULL | |
+----------+----------+------+-----+---------+-------+
2 rows in set (0.02 sec)
这时向表中插入中文然后有错误。
mysql> insert into users values(88,'中文');
ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column 'usern
ame' at row 1
还要更改users表的username的字符集。
mysql> alter table users modify username char(20) character set gbk;
ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'usern
ame' at row 1
因为表中已经有数据,所以更改username字符集的操作没有成***
清空users表中的数据
mysql> truncate table users;
Query OK, 3 rows affected (0.01 sec)
从新更改user表中username的字符集
mysql> alter table users modify username char(20) character set gbk;
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
这时再插入中文字符,插入成***。
mysql> insert into users values(88,'中文');
Query OK, 1 row affected (0.01 sec)
mysql> select * from users;
+--------+----------+
| userid | username |
+--------+----------+
| 88 | 中文 |
+--------+----------+
1 row in set (0.00 sec)
mysql>
六、在linux下对mysql进行C编程问题:
要指明库文件mysql.h的路径,一般为
/usr/include/mysql/mysql.h
编译时要指明libmysqlclient.so的路径:
/usr/lib/mysql/libmysqlclient.so
命令为 : gcc 点C文件名 /usr/lib/mysql/libmysqlclient.so
本文出自 “7098269” 博客,请务必保留此出处
,网站空间