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

1、安装 MySQL

首先来进行 MySQL 的安装。打开超级终端,输入:

# yum install mysql mysql-server

安装完毕,让 MySQL 能够随系统自动启动:

# chkconfig --levels 235 mysqld on

# /etc/init.d/mysqld start

设置 MySQL 数据 root 账户的密码:

# 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:

# 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

# mysql -u root -p

Enter password:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

#

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

各位大牛,这是咋回事?

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

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

/etc/init.d/mysql stop (service mysqld stop )

/usr/bin/mysqld_safe --skip-grant-tables

另外开个SSH连接或终端

# 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数据库的所有权限.

>[b]grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';[/b]?

//刷新系统权限表?

mysql>[b]flush privileges[/b];

[b]mysql导出数据库:[/b]在未登录MySQL的时候执行,-p 后面的是要导出库的名字

mysqldump --default-character-set=utf8 -u root -p ecloud_auth>/app/20130906_ecloud_auth/ecloud_auth_test.sql

[b]mysql导入数据库[/b]

source /app/20130906_ecloud_auth/ecloud_auth_test.sql

[b]查看MySQL运行状态[/b]

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

# /etc/rc.d/init.d/mysql restart

Shutting down MySQL [ 确定 ]

Starting MySQL. [ 确定 ]

# 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