欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-06-06 14:09:33
...

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

,网站空间