MySQL

来源:互联网 发布:windows日程提醒软件 编辑:程序博客网 时间:2024/06/06 09:51

安装配置

 

 

安装MySQL 

sudo apt-get install mysql-server 

 

配置MySQL 

注意,在Ubuntu下MySQL缺省是只允许本地访问的,如果你要其他机器也能够访问的话,那么需要改变/etc/mysql/my.cnf配置文件了!下面我们一步步地来: 

 

默认的MySQL安装之后根用户是没有密码的,所以首先用根用户进入: 

$mysql -u root 

在这里之所以用-u root是因为我现在是一般用户(firehare),如果不加-u root的话,mysql会以为是firehare在登录。注意,我在这里没有进入根用户模式,因为没必要。一般来说,对mysql中的数据库进行操作,根本没必要进入根用户模式,只有在设置时才有这种可能。 

进入mysql之后,最要紧的就是要设置Mysql中的root用户密码了,否则,Mysql服务无安全可言了。 

mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456"; 

 

注意,我这儿用的是123456做为root用户的密码,但是该密码是不安全的,请大家最好使用大小写字母与数字混合的密码,且不少于8位。 

这样的话,就设置好了MySQL中的root用户密码了,然后就用root用户建立你所需要的数据库。我这里就以xoops为例: 

mysql>CREATE DATABASE xoops; 

mysql>GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@localhost IDENTIFIED BY "654321"; 

 

这样就建立了一个xoops_roots的用户,它对数据库xoops有着全部权限。以后就用xoops_root来对xoops数据库进行管理,而无需要再用root用户了,而该用户的权限也只被限定在xoops数据库中。 

 

如果你想进行远程访问或控制,那么你要做两件事: 

其一: 

mysql>GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@"%" IDENTIFIED BY "654321"; 

允许xoops_root用户可以从任意机器上登入MySQL。 

 

其二: 

$sudo gedit /etc/mysql/my.cnf 

 

老的版本中 

>skip-networking => # skip-networking 

 

新的版本中 

>bind-address=127.0.0.1 => bind-address= 你机器的IP 

 

这样就可以允许其他机器访问MySQL了。

 

进入mysql

mysql -uroot -p 

(输入mysql的root密码)

配置 MySQL 的管理员密码

sudo mysqladmin -u root password newpassword

添加新用户

一.Ubuntu下启动mysql方法:

  /etc/init.d/sudo mysqld

  二.用户添加

  bin>mysql -u root

  mysql> grant 权限1,权限2,...权限n on 数据库名称.表名称 to 用户名@用户地址 identified by '连接口令';

  权限1,权限2,...权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。

  当权限1,权限2,...权限n被all privileges或者all代替,表示赋予用户全部权限。

  当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。

  用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用'%'表示从任何地址连接。

  '连接口令'不能为空,否则创建失败。

  例如:

  mysql>grant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by '123';

  给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。

  mysql>grant all privileges on vtdc.* to joe@10.163.225.87 identified by '123';

  给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。

  mysql>grant all privileges on *.* to joe@10.163.225.87 identified by '123';

  给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

  mysql>grant all privileges on *.* to joe@localhost identified by '123';

  给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。shell> mysql -u root -p1234 mysql
mysql> insert into user(Host,User,Password) values ('localhost','_backmysql','databse');
添加一个来自本机的mysql 用户_backmysql,口令为:1234

#mysql –u root –p 
mysql>;GRANT FILE ON *.* TO backup@192.168.1.200 IDENTIFIED BY ‘1234’; 
mysql>;/exit
开放一个账号backup密码1234给来自IP:192.168.1.200有档案处理的权限

格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";
mysql>;grant select,update,insert,delete on *.* to atyu30@10.0.0.100 identified by "1234";

 

启动、关闭和重启mysql

/etc/init.d/mysql start|stop|restart|reload|force-reload

忘记root秘密

一、以系统的root用户登陆系统,进入终端

[root@localhost /]#

二、杀掉mysql进程

方法1、

[root@localhost /]#killall mysqld

方法2、

[root@localhost /]#ps -aux  //查看所有进程,找到mysql进程的pid

然后

[root@localhost /]#kill pid   //pid是mysql的进程号

三、用--skip-grant-tables参数启动mysqld

[root@localhost /]#/usr/local/mysql/bin/mysqld_safe --skip-grant-tables& 

  // 其中/usr..../bin是我的mysql安装目录

[root@localhost /]#/usr/local/mysql/bin/mysql  //进入mysql

 mysql> use mysql   //切换到mysql database

 mysql> UPDATE user SET password=password('123456') WHERE user='root';

  //将root密码该为123456了

 

原创粉丝点击