I am LAZY bones? AN ancient AND boring SITE

2007年 07月 28日 的归档

mySQL 的一些应用(命令行)

创建一个名为databasename的数据库:

$ mysqladmin -uroot -pxxxx create databasename

或者可以进入mysql交互界面再建立:

$ mysql -uroot -pxxxx 
mysql> CREATE DATABASE databasename;
Query OK, 1 ROW affected (0.00 sec)
mysql>

建立一个名为theuser,密码为thepass的用户,对databasename数据库有任何权限,并限制此用户不能来自远程:

mysql> GRANT ALL ON databasename.* TO 'theuser'@'localhost' IDENTIFIED BY 'thepass';
Query OK, 0 ROWS affected (0.00 sec)
mysql>

建立一个名为theuser,密码为thepass的用户,对databasename数据库只有读权限,但是此用户可以来自远程:

mysql> GRANT SELECT ON databasename.* TO 'theuser'@'%' IDENTIFIED BY 'thepass';

执行一个SQL文件:

mysql> SOURCE filename.sql
....输出信息
mysql>

========20090928 update========
补充一个忘记mysql的root密码的解决方法:参考这里
如果 MySQL 正在运行,要首先停掉:

$ sudo /etc/init.d/mysql stop

启动 MySQL 的“安全模式”:

$ safe_mysqld --skip-grant-tables &

就可以不需要密码就进入 MySQL 了。
然后就是

$ mysql
mysql> USE mysql
mysql> UPDATE USER SET password=password("new_pass") WHERE USER="root";
mysql> FLUSH privileges;
mysql> exit;

现在可以杀掉 safe_mysqld 进程,用正常方法启动 MySQL 了。

apt-file

# apt-file search filename——查找包含特定文件的软件包(不一定是已安装的),这些文件的文件名中含有指定的字符串。
apt-file是一个独立的软件包。您必须先使用apt-get install来安装它,然後运行apt-file update(这步会很慢,而且没有提示,需要点耐心)。
如果apt-file search filename输出的内容太多,您可以尝试使用apt-file search filename | grep -w filename(只显示指定字符串作为完整的单词出现在其中的那些文件名)或者类似方法,例如:apt-file search filename | grep /bin/(只显示位于诸如/bin或/usr/bin这些文件夹中的文件,如果您要查找的是某个特定的执行文件的话,这样做是有帮助的)。
apt-get update 系统软件包更新