Solaris / OpenSolaris 下使用 MySQL 的问题汇总

Sola­ri­s下安装MySQL

1. 下载MySQL
下载页面:http://dev.mysql.com/downloads/mysql/5.0.html#downloads
选择对应的So­la­ri­s版本
2. 解包MySQL
转到下载目录
# gun­zip -d mysql-standard-5.0.27-solaris10-x86_64.pkg.gz
3. 创建mysql的用户组和用户
# grou­pa­dd mysql
# use­ra­dd -G mysql mysql
4. 使用pk­ga­dd安装MySQL包
# pkga­dd -d mysql-standard-5.0.27-solaris10-x86_64.pkg
安装后的MySQL位于/opt/mysql/mysql目录下
5. 在目录/etc下创建文件my.cnf文件,内容如下
[mysqld]
basedir=/opt/mysql/mysql
datadir=/opt/mysql/mysql/data
6. 运行MySQL的post-install文件,创建数据库repository
# cd /opt/mysql/mysql
# ./scripts/mysql_install_db –defaults-file=/etc/my.cnf –user=mysql
7. 启动MySQL
# cd /opt/mysql/mysql
# ./bin/mysqld_safe –defaults-file=/etc/my.cnf –user=mysql
也可以使用如下的方法来启动MySQL
# /etc/init.d/mysql sta­rt
8. 更改MySQL roo­t用户的口令
# /opt/mysql/mysql/bin/mysqladmin -u root passwo­rd ‘new-passwo­rd’
# /opt/mysql/mysql/bin/mysqladmin -u root -h 机器名称 passwo­rd ‘new-passwo­rd’

9. 登录MySQL命令行
# mysql -p
输入新的密码
9. 停止MySQL
# /etc/init.d/mysql stop

MySQL修改密码方法
首先要声明一点,大部分情况下,修改MySQL是需要有mysql里的root权限的,所以一般用户无法更改密码,除非请求管理员。
方法一
使用phpmyadmin,这是最简单的了,修改mysql库的user表,
不过别忘了使用PASSWORD函数。
方法二
使用mysqladmin,这是前面声明的一个特例。
mysqla­dmin -u root -p passwo­rd mypa­sswd
输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
把命令里的root改为你的用户名,你就可以改你自己的密码了。
当然如果你的mysqla­dmin连接不上mysql server,或者你没有办法执行mysqladmin,
那么这种方法就是无效的。
而且mysqla­dmin无法把密码清空。
下面的方法都在mysql提示符下使用,且必须有mysql的root权限:
方法三
mysql> INSERT INTO mysql.user (Host,User,Password)
VALUES(‘%’,‘paul’,PASSWORD(‘mypassword’));
mysql> FLUSH PRIVILEGES
确切地说这是在增加一个用户,用户名为paul,密码为mypassword。
注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES
方法四
和方法三一样,只是使用了REPLACE语句
mysql> REPLACE INTO mysql.user (Host,User,Password)
VALUES(‘%’,‘paul’,PASSWORD(‘mypassword’));
mysql> FLUSH PRIVILEGES
方法五
使用SET PASSWORD语句,
mysql> SET PASSWORD FOR ‘paul’@”%” = PASSWORD(‘mypassword’);
你也必须使用PASSWORD()函数,
但是不需要使用FLUSH PRIVILEGES
方法六
使用GRANT … IDENTIFIED BY语句
mysql> GRANT USAGE ON *.* TO ‘paul’@”%” IDENTIFIED BY ‘mypa­sswo­rd’;
这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES
注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。

mysql技巧总结

1.修改mysql中root的密码:
shell>mysql -u root -p
mysql>SET PASSWORD FOR root=PASSWORD(“root”);

2.远程登录mysql server:(当然server必须首先给某个远程用户授权了)
shell>mysql -h host -u user -p

3.打开数据库:use dbna­me;
显示所有数据库:show data­ba­ses;
显示数据库mysql中所有的表:先use mysql;然后show tables;
显示表的列信息:describe user;(显示表mysql数据库中user表的信息);

4.创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个
GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY ‘some­thing’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO monty@”%” IDENTIFIED BY ‘some­thing’ WITH GRANT OPTION;

5.删除授权:
REVOKE ALL PRIVILEGES ON *.* FROM root@”%”;
USE mysql;
DELETE FROM user WHERE User=“root” and Host=”%”;
FLUSH PRIVILEGES;

6. 创建一个用户custom在特定客户端weiqiong.com登录,可访问特定数据库bankaccount
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON ban­ka­ccount.*
TO custom@weiqiong.com IDENTIFIED BY ‘stu­pid’;

7.重命名表:
ALTER TABLE t1 RENAME t2;

为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样),
并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:
ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

增加一个新TIMESTAMP列,名为d:
ALTER TABLE t2 ADD d TIMESTAMP;

在列d上增加一个索引,并且使列a为主键:
ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);

删除列c:
ALTER TABLE t2 DROP COLUMN c;

增加一个新的AUTO_INCREMENT整数列,命名为c:
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX ©;
注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,并且另外我们声明c为NOT NULL
因为索引了的列不能是NULL。

8.删除记录:
DELETE FROM t1 WHERE C>10;

6.改变某几行:
UPDATE t1 SET user=weiqiong,password=weiqiong;

7.使用name列的头10个字符创建一个索引:
CREATE INDEX part_of_name ON custo­mer (name(10));

MySQL导出导入命令的用例

1.导出整个数据库

mysqldu­mp -u 用户名 -p 数据库名 > 导出的文件名

mysqldu­mp -u wcnc -p smgp_apps_wcnc > wcnc.sql

2.导出一个表

mysqldu­mp -u 用户名 -p 数据库名 表名> 导出的文件名

mysqldu­mp -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql

3.导出一个数据库结构

mysqldu­mp -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:wcnc_db.sql

-d 没有数据 –add-drop-table 在每个c­rea­te语句之前增加一个d­rop table

4.导入数据库

常用sou­r­ce 命令

进入mysql数据库控制台,

如mysql -u root -p

mysql>use 数据库

然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

mysql>source d:wcnc_db.sql

You may also like...

1 Response

  1. buy viagra says:

    Than­ks for the review! I want to say — thank you for this!

Leave a Reply

Your email address will not be published.

10 + 3 =

使用新浪微博登陆