首页 >数据库 >mysql教程 > 从安装mysql到初学时遇到的问题及解决方案

从安装mysql到初学时遇到的问题及解决方案

WBOY
WBOY原创
2016-06-07 17:41:531009浏览

一、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” 博客,请务必保留此出处

,网站空间
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn