mysql数据库,命令;mysql 赋权限;

1、安装 MySQL
首先来进行 MySQL 的安装。打开超级终端,输入:
[root@localhost ~]# yum install mysql mysql-server
安装完毕,让 MySQL 能够随系统自动启动:
[root@localhost ~]# chkconfig --levels 235 mysqld on
[root@localhost ~]# /etc/init.d/mysqld start

设置 MySQL 数据 root 账户的密码:
[root@localhost ~]# mysql_secure_installation
当出现如下提示时候直接按回车:
Enter current password for root
出现如下再次回车:
Set root password? [Y/n]
出现如下提示输入你需要设置的密码,回车后在输入一次确认:
New password:
接下来还会有四个确认,分别是:
Remove anonymous users? [Y/n]
Disallow root login remotely? [Y/n]
Remove test database and access to it? [Y/n]
Reload privilege tables now? [Y/n]
直接回车即可。
在命令模式下直接敲mysql可以进入mysql:
[root@localhost ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.1.49-community-log MySQL Community Server (GPL)
。。。

2、创建数据库出错:
mysql> create database tmonitor;
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'tmonitor'
mysql>

mysql -uroot -p \
Enter passwd: \
CREATE DATABASE chinaops DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; \
use chinaops; \
set names utf8; \
source /home/chinaops.sql\



我明明是root登录的,为什么会是''@'localhost' ?

3、另外,我show一下数据库,却发现没有'mysql'库,咋回事?我记得mysql数据库中默认有个名叫‘mysql’的数据库,用来维护用户名、配置参数等信息的库啊:

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.00 sec)

mysql>

4、如果是因为匿名登录,那我退出重新进入mysql吧:

mysql> exit
Bye
[root@localhost ~]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@localhost ~]#

——访问被拒绝了。。。。。。

各位大牛,这是咋回事?
是不是因为没有‘mysql’数据库,导致根本不存在‘root’这个用户,从而导致认证失败的?


思路还是重置密码,方法也是如下所述:

/etc/init.d/mysql stop (service mysqld stop )
/usr/bin/mysqld_safe --skip-grant-tables
另外开个SSH连接或终端
[root@localhost ~]# mysql
mysql>use mysql
mysql>update user set password=password("123456") where user="root";
mysql>flush privileges;
mysql>exit
修改root密码方法二:
mysql>mysqladmin -u用户名 -p旧密码 password 新密码

pkill -KILL -t pts/0 可将pts为0的**用户(之前运行mysqld_safe的用户窗口)强制踢出
正常启动 MySQL:/etc/init.d/mysql start (service mysqld start)

问题出在最后一步:你pkill时,pts/X,其中的‘X’不一定是0,可能是1,也可能是2,也可能是。。。所以你kill pts/0 肯定就不对了。你可以用'ps aux | grep pts'查到你重置密码的SSH窗口。
其实吧,上面那是文明的粗鲁做法,最简单的是粗鲁的文明做法:直接把重置密码的SSH窗口关闭就行

新建用户。
//登录MYSQL
@>mysql -u root -p
@>密码
//创建用户
mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"));
//刷新系统权限表
mysql>flush privileges;
这样就创建了一个名为:phplamp  密码为:1234  的用户。
然后登录一下。
mysql>exit;
@>mysql -u phplamp -p
@>输入密码
mysql>登录成功

给MySQL用户赋权:
以root身份登录,然后输入下面命令:
grant all on *.* to username@"%" Identified by "password";

mysql>create database phplampDB;

//授权phplamp用户拥有phplamp数据库的所有权限.

> grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';?
//刷新系统权限表?
mysql> flush privileges;


mysql导出数据库:在未登录MySQL的时候执行,-p 后面的是要导出库的名字
mysqldump --default-character-set=utf8 -u root -p ecloud_auth>/app/20130906_ecloud_auth/ecloud_auth_test.sql

mysql导入数据库
source /app/20130906_ecloud_auth/ecloud_auth_test.sql

查看MySQL运行状态
service mysqld status;

设置MySQL的字符集
1、查看MySQL的字符集
   SHOW VARIABLES LIKE 'character%';
    +--------------------------+---------------------------------+  
    | Variable_name | Value |  
    +--------------------------+---------------------------------+   
    | character_set_client | utf8 |  
    | character_set_connection | utf8 |  
    | character_set_database | utf8 | 
    | character_set_filesystem | binary |  
    | character_set_results | utf8 |  
    | character_set_server | utf8 |  
    | character_set_system | utf8 |  
    | character_sets_dir | D:"mysql-5.0.37"share"charsets" |  
    +--------------------------+---------------------------------+ 

2、设置永久:
   vim /etc/my.ini
   添加:default-character-set = utf8
         character_set_server = utf8
   设置临时:
   mysql> SET character_set_client = utf8 ; 
   mysql> SET character_set_connection = utf8 ;  
   mysql> SET character_set_database = utf8 ;  
   mysql> SET character_set_results = utf8 ;   
   mysql> SET character_set_server = utf8 ;

3、查询语句临时设置:
   set names utf8;
   相当于下面的三句指令:
   SET character_set_client = utf8; 
   SET character_set_results = utf8;
   SET character_set_connection = utf8;


2. 拷贝 small.cnf、my-medium.cnf、my-huge.cnf、my-innodb-heavy-4G.cnf其中的一个到/etc下,命名为my.cnf
  cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

3. 修改my.cnf

vi /etc/my.cnf

在[client]下添加
  default-character-set=utf8

在[mysqld]下添加
  default-character-set=utf8

4.重新启动MySQL
  [root@bogon ~]# /etc/rc.d/init.d/mysql restart
  Shutting down MySQL                                        [  确定  ]
  Starting MySQL.                                            [  确定  ]
  [root@bogon ~]# mysql -u root -p
  Enter password:
  Welcome to the MySQL monitor.  Commands end with ; or \g.
  Your MySQL connection id is 1
  Server version: 5.1.22-rc-community-log MySQL Community Edition (GPL)

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

5.查看字符集设置

mysql> show variables like 'collation_%';
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.02 sec)

mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.02 sec)

mysql>

其他的一些设置方法:

修改数据库的字符集
  mysql>use mydb
  mysql>alter database mydb character set utf-8;

创建数据库指定数据库的字符集
  mysql>create database mydb character set utf-8;
连接到远程主机上的MYSQL (远程:IP地址)
    假设远程主机的IP为:10.0.0.1,用户名为root,密码为123。
    则键入以下命令:
    mysql -h10.0.0.1 -uroot -p123


1、创建索引(PRIMARY KEY,INDEX,UNIQUE)
mysql>ALTER TABLE tbl_name ADD INDEX index_name (column list);
mysql>ALTER TABLE tbl_name ADD UNIQUE index_name (column list);
mysql>ALTER TABLE tbl_name ADD PRIMARY KEY index_name (column list);

2、删除索引(PRIMARY KEY,INDEX,UNIQUE)
mysql>ALTER TABLE tbl_name DROP INDEX index_name (column list);
mysql>ALTER TABLE tbl_name DROP UNIQUE index_name (column list);
mysql>ALTER TABLE tbl_name DROP PRIMARY KEY index_name (column list);

3、重建索引
mysql> REPAIR TABLE tbl_name QUICK;


4、查看某个数据表的索引
mysql> SHOW INDEX FROM tbl_name;


#mysql -u root -p

ERROR 2002 (HY000):Can't connect to local MySQL server

#ps -A|grep mysql
   显示类似:
  1829 ?        00:00:00 mysqld_safe
   1876 ?        00:00:31 mysqld
#kill -9 1829
#kill -9 1876
#/etc/init.d/mysql restart
#mysql -u root -p

猜你喜欢

转载自tomhat.iteye.com/blog/1891020