ubuntu下mysql配置

ubuntu下mysql配置

  • 浏览: 85106
  • |
  • 更新: 2011/05/26 16:16:43

ubuntu下mysql配置

linux下mysql安装配置

1、下载MySQL的安装文件

安装MySQL需要下面两个文件:

MySQL-server-4.0.23-0.i386.rpm

MySQL-client-4.0.23-0.i386.rpm

下载地址为:http://www.mysql.com/downloads/mysql-4.0.html,打开此网页,下拉网页找到“Linux

x86 RPM downloads”项,找到“Server”和“Client

programs”项,下载需要的上述两个rpm文件。

2、安装MySQL

rpm文件是Red Hat公司开发的软件安装包,rpm可让Linux在安装软件包时免除许多复杂的手续

。该命令在安装时常用的参数是

–ivh

,其中i表示将安装指定的rmp软件包,V表示安装时的详细信息,h表示在安装期间出现“#”符号来显示目前的安装过程。这个符号将持续到安装完成后才停止。

1)安装服务器端

在有两个rmp文件的目录下运行如下命令:

[root@test1 local]# rpm -ivh MySQL-server-4.0.23-0.i386.rpm

显示如下信息。

warning: MySQL-client-4.0.23-0.i386.rpm

signature: NOKEY, key ID 5072e1f5

Preparing... ###########################################

[100%]

1:MySQL-server ###########################################

[100%]

。。。。。。(省略显示)

/usr/bin/mysqladmin -u root password "new-password"

/usr/bin/mysqladmin -u root -h test1 password "new-password"

。。。。。。(省略显示)

Starting mysqld daemon with databases from /var/lib/mysql

如出现如上信息,服务端安装完毕。测试是否成功可运行netstat看Mysql端口是否打开,如打开表示服务已经启动,安装成功。Mysql默认的端口是3306。

[root@test1 local]# netstat -nat

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address

State

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN

上面显示可以看出MySQL服务已经启动。

2)安装客户端

运行如下命令:

[root@test1 local]# rpm -ivh MySQL-client-4.0.23-0.i386.rpm

warning: MySQL-client-4.0.23-0.i386.rpm: V3 DSA signature: NOKEY,

key ID 5072e1f5

Preparing... ###########################################

[100%]

1:MySQL-client ###########################################

[100%]

显示安装完毕。

用下面的命令连接mysql,测试是否成功。

三、登录MySQL

登录MySQL的命令是mysql, mysql 的使用语法如下:

mysql [-u username] [-h host] [-p[password]] [dbname]

username 与 password 分别是 MySQL

的用户名与密码,mysql的初始管理帐号是root,没有密码,注意:这个root用户不是Linux的系统用户。MySQL默认用户是root,由于

初始没有密码,第一次进时只需键入mysql即可。

[root@test1 local]# mysql

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 1 to server version:

4.0.16-standard

Type "help;" or "h" for help. Type "c" to clear the buffer.

mysql>

出现了“mysql>”提示符,恭喜你,安装成功!

增加了密码后的登录格式如下:

mysql -u root -p

Enter password: (输入密码)

其中-u后跟的是用户名,-p要求输入密码,回车后在输入密码处输入密码。

注意:这个mysql文件在/usr/bin目录下,与后面讲的启动文件/etc/init.d/mysql不是一个文件。

四、MySQL的几个重要目录

MySQL安装完成后不象SQL

Server默认安装在一个目录,它的数据库文件、配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为

Linux本身的目录结构就比较复杂,如果搞不清楚MySQL的安装目录那就无从谈起深入学习。

下面就介绍一下这几个目录。

1、数据库目录

/var/lib/mysql/

2、配置文件

/usr/share/mysql(mysql.server命令及配置文件)

3、相关命令

/usr/bin(mysqladmin mysqldump等命令)

4、启动脚本

/etc/rc.d/init.d/(启动脚本文件mysql的目录)

五、修改登录密码

MySQL默认没有密码,安装完毕增加密码的重要性是不言而喻的。

1、命令

usr/bin/mysqladmin -u root password "new-password"

格式:mysqladmin -u用户名 -p旧密码 password 新密码

2、例子

例1:给root加个密码123456。

键入以下命令 :

[root@test1 local]# /usr/bin/mysqladmin -u root password

123456

注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

3、测试是否修改成功

1)不用密码登录

[root@test1 local]# mysql

ERROR 1045: Access denied for user: "root@localhost" (Using

password: NO)

显示错误,说明密码已经修改。

2)用修改后的密码登录

[root@test1 local]# mysql -u root -p

Enter password: (输入修改后的密码123456)

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 4 to server version:

4.0.16-standard

Type "help;" or "h" for help. Type "c" to clear the buffer.

mysql>

成功!

这是通过mysqladmin命令修改口令,也可通过修改库来更改口令。

六、启动与停止

1、启动

MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可。

[root@test1 init.d]# /etc/init.d/mysql start

2、停止

/usr/bin/mysqladmin -u root -p shutdown

3、自动启动

1)察看mysql是否在自动启动列表中

[root@test1 local]# sbin/chkconfig --list

2)把MySQL添加到你系统的启动服务组里面去

[root@test1 local]# sbin/chkconfig --add mysql

3)把MySQL从启动服务组里面删除。

[root@test1 local]# sbin/chkconfig --del mysql

七、更改MySQL目录

MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:

/usr/lib/mysql/data

1、home目录下建立data目录

cd /home

mkdir data

2、把MySQL服务进程停掉:

/usr/bin/mysqladmin -u root -p shutdown

3、把/var/lib/mysql整个目录移到/home/data

mv /var/lib/mysql /home/data/

这样就把MySQL的数据文件移动到了/home/data/mysql下

4、找到my.cnf配置文件

如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:

[root@test1 mysql]# cp

/usr/share/mysql/my-medium.cnf /etc/my.cnf

5、编辑MySQL的配置文件/etc/my.cnf

为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock

。操作如下:

vi my.cnf (用vi工具编辑my.cnf文件,找到下列数据修改之)

# The MySQL server

[mysqld]

port = 3306

#socket = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)

socket = /home/data/mysql/mysql.sock (加上此行)

6、修改MySQL启动脚本/etc/rc.d/init.d/mysql

最后,需要修改MySQL启动脚本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。

[root@test1 etc]# vi /etc/rc.d/init.d/mysql

#datadir=/var/lib/mysql (注释此行)

datadir=/home/data/mysql (加上此行)

7、重新启动MySQL服务

/etc/rc.d/init.d/mysql start

或用reboot命令重启Linux

如果工作正常移动就成功了,否则对照前面的7步再检查一下。

八、MySQL的常用操作

注意:MySQL中每个命令后都要以分号;结尾。

1、显示数据库

mysql> show databases;

+----------+

| Database |

+----------+

| mysql |

| test |

+----------+

2 rows in set (0.04 sec)

Mysql刚安装完有两个数据库:mysql和test。mysql库非常重要,它里面有MySQL的系统信息,我们改密码和新增用户,实际上就是用这个库中的相关表进行操作。

2、显示数据库中的表

mysql> use mysql; (打开库,对每个库进行操作就要打开此库,类似于foxpro

Database changed

mysql> show tables;

+-----------------+

| Tables_in_mysql |

+-----------------+

| columns_priv |

| db |

| func |

| host |

| tables_priv |

| user |

+-----------------+

6 rows in set (0.01 sec)

3、显示数据表的结构:

describe 表名;

4、显示表中的记录:

select * from 表名;

例如:显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。

Select * from user;

5、建库:

create database 库名;

例如:创建一个名字位dfg的库

mysql> create databases dfg;

6、建表:

use 库名;

create table 表名 (字段设定列表);

例如:在刚创建的dfg库中建立表name,表中有id(序号,自动增长),xm(姓名),xb(性别),csny(出身年月)四个字段

use dfg;

mysql> create table name (id int(3) auto_increment

not null primary key, xm char(8),xb char(2),csny date);

可以用describe命令察看刚建立的表结构。

mysql> describe name;

+-------+---------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+-------+---------+------+-----+---------+----------------+

| id | int(3) | | PRI | NULL | auto_increment |

| xm | char(8) | YES | | NULL | |

| xb | char(2) | YES | | NULL | |

| csny | date | YES | | NULL | |

+-------+---------+------+-----+---------+----------------+

7、增加记录

例如:增加几条相关纪录。

mysql> insert into name

values("","张三","男","1971-10-01");

mysql> insert into name

values("","白云","女","1972-05-20");

可用select命令来验证结果。

mysql> select * from name;

+----+------+------+------------+

| id | xm | xb | csny |

+----+------+------+------------+

| 1 | 张三 | 男 | 1971-10-01 |

| 2 | 白云 | 女 | 1972-05-20 |

+----+------+------+------------+

8、修改纪录

例如:将张三的出生年月改为1971-01-10

mysql> update name set csny="1971-01-10" where

xm="张三";

9、删除纪录

例如:删除张三的纪录。

mysql> delete from name where xm="张三";

10、删库和删表

drop database 库名;

drop table 表名

九、增加MySQL用户

格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"

例1、增加一个用户user_1密码为123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令:

mysql> grant select,insert,update,delete on *.* to

user_1@"%" Identified by "123";

例1增加的用户是十分危险的,如果知道了user_1的密码,那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了,解决办法见例2。

例2、增加一个用户user_2密码为123,让此用户只可以在localhost上登录,并可以对数据库dfg进行查询、插入、修改、删除的操作 (localhost指本地主机,即MySQL数据库所在的那台主机),这样用户即使用知道user_2的密码,他也无法从网上直接访问数据库,只能通过

MYSQL主机来操作dfg库。

mysql>grant select,insert,update,delete on dfg.* to

user_2@localhost identified by "123";

用新增的用户如果登录不了MySQL,在登录时用如下命令:

mysql -u user_1 -p -h 192.168.113.50 (-h后跟的是要登录主机的ip地址)

十、备份与恢复

1、备份

例如:将上例创建的dfg库备份到文件back_dfg中

[root@test1 root]#

cd /home/data/mysql (进入到库目录,本例库已由val/lib/mysql转到/home/data/mysql,见上述第七部分内容)

[root@test1 mysql]# mysqldump -u root -p --opt dfg >

back_dfg

2、恢复

[root@test mysql]# mysql -u root -p ccc <

back_dfg

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

在LINUX中安装 MySQL,可以在终端提示符后运行下列命令:

sudo apt-get install mysql-server

sudo apt-get install mysql-client

sudo apt-get install php5-mysql

// 安装php5-mysql 是将php和mysql连接起来

一旦安装完成,MySQL 服务器应该自动启动。

您可以在终端提示符后运行以下命令来检查 MySQL 服务器是否正在运行:

sudo netstat -tap | grep mysql

当您运行该命令时,您可以看到类似下面的行:

tcp 0 0 localhost.localdomain:mysql *:* LISTEN -

如果服务器不能正常运行,您可以通过下列命令启动它:

sudo /etc/init.d/mysql start 启动mysql

我们可以用以下命令去查看当前Mysql的状态

sudo service mysql status

进入mysql

$mysql -uroot -p 管理员密码

配置 MySQL 的管理员密码:

sudo mysqladmin -u root password newpassword

安装MySQL Administrator 图形界面

在新立得软件下搜索mysql找到

mysql-admin包,选择安装后就可以,在应用程序/编程就可以运行。

您也可以安装mysql 的图形化管理工具 sudo apt-get mysql-admin

mysql-query-browser

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

配置 mysql,让它支持其它客户端访问,如果你不需要就不用修改。

登录到MySQL服务器端,在mysql库下执行增加用户操作:

格式:grant select on 数据库.* to 用户名@登录主机 identified by

"密码"

GRANT ALL ON dbname.* TO test@"%" IDENTIFIED BY

"123456"

此命令创建用户test,并给它赋予访问数据库dbname的不受限制的权限,且可以在任何机器上访问

grant all on *.* to "remote"@"172.16.21.39" identified by

"password";

如果要设置为任何客户端都可以以root连接的话,可以这么写:

grant all on *.* to "root"@"%" identifiied by

"root的密码"

mysql>GRANT ALL PRIVILEGES ON *.* TO

admin@localhost IDENTIFIED BY "something" WITH GRANT

OPTION;

mysql>GRANT ALL PRIVILEGES ON *.* TO admin@"%"

IDENTIFIED BY "something" WITH GRANT OPTION;

第二个或者用下面:

mysql>update user set host="%" where

host="192.168.1.1";

类似这用方法的整理如下:

1。

改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改

"mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

mysql -u root -pvmwaremysql>use

mysql;mysql>update user set host = "%" where user =

"root";mysql>select host, user from

user;

2.

授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO "myuser"@"%" IDENTIFIED BY

"mypassword" WITH GRANT OPTION;

如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO "myuser"@"192.168.1.3"

IDENTIFIED BY "mypassword" WITH GRANT OPTION;

但问题仍没有解决:

找到 命令

mysql> flush

privileges

//使修改生效

显示影响了零行。

问题依然没有解决,重新启动mysql

sudo /etc/init.d/mysql restart

还是不行。

了解到mysql有本机绑定,找到问题所在。

查找文件

skip-networking

修改为

#skip-networking

保存并关闭文件。

编辑 /etc/mysql/my.cnf

sudo gedit /etc/mysql/my.cnf

# Instead of skip-networking the default is now to listen

only on

# localhost which is more compatible and is not less

secure.

bind-address = 127.0.0.1

将”bind-address = 127.0.0.1“注释

sudo /etc/init.d/mysql restart

或者

service mysqld restart

重启即可远程访问

Mysql卸载:

apt-get autoremove mysql-server

apt-get autoremove mysql-client

首先试试

apt-get --reinstall install mysql-server???

不行时而且mysql关联少时,可以apt-get remove --purge

mysql-server???然后再安装,关联多不能删时,dpkg -S

/etc/init.d/mysql找到对应的包,apt-get -d --reinstall install

mysql-server??? 然后将对应的deb解开将mysql复制过去

dpkg -x /var/cache/apt/archives/mysql-server???.deb /tmp/foo

cp /tmp/foo/etc/init.d/mysql /etc/init.d

还不行的话,终极解决是将/var/lib/dpkg/info下对应的东东删掉,删除和重装相应的包了事,而不会影响系统的

+++++++++++++++++++++++++++++++++++++++++++++++++++

修改数据库默认字符集以及解决phpmyadmin和mysql中文乱码:

安装后的数据库编码默认是latin1,这个在编码下,存储中文时是会乱码的,所以在使用时还得把数据库的字符集改成支持中文的字符集,下面以utf-8为例,简单记录下修改字符集需要的操作:

1) 登录数据库后,使用命令show variables like "character%"

可以查看数据库使用字符集的情况,下面是在没有修改前mysql的字符集设置:

+--------------------------+----------------------------+

|

Variable_name

|

Value

|

+--------------------------+----------------------------+

|

character_set_client

|

latin1

|

| character_set_connection |

latin1

|

| character_set_database |

latin1

|

| character_set_filesystem |

binary

|

|

character_set_results

|

latin1

|

|

character_set_server

|

latin1

|

|

character_set_system

|

utf8

|

|

character_sets_dir

| /usr/share/mysql/charsets/ |

2) 要把字符集换成utf-8的,我们只要修改/etc/mysql/下的配置文件my.cnf。

首先停止mysql服务[sudo /etc/init.d/mysql stop],然后在my.cnf中加入下面的配置段:

[client]

default-character-set = utf8

[mysqld_safe]

default-character-set=utf8

[mysqld]

default-character-set=utf8

[mysql]

default-character-set=utf8

3) 完成上面的修改,保存后重启mysql

[sudo service mysql restart]

重新登录mysql后,在执行:show variables like "character%";

字符集应该是变成了utf8

phpmyadmin的连接校对选用:utf8_general_ci

默认即可。这样配置完毕中文乱码可以解决,也可以用phpmyadmin管理mysql数据库了。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Mysql安装:

sudo apt-get install mysql-server

sudo

apt-get install mysql-client

posted @ 2017-09-11 15:16  loanhicks  阅读(180)  评论(0编辑  收藏  举报