为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
MySQL


一、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

©著作权归作者所有:来自51CTO博客作者划舞鱼的原创作品,如需转载,请注明出处,否则将追究法律责任

安装mysqlmysql编程


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消