mysql默认的是没有给mysql设置密码能够直接登陆mysql
[root@zhangmengjunlinux ~]# mysql -urootlinux
Welcome to the MySQL monitor. Commands end with ; or \g.sql
Your MySQL connection id is 2数据库
Server version: 5.1.73-log MySQL Community Server (GPL)vim
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.安全
Oracle is a registered trademark of Oracle Corporation and/or itside
affiliates. Other names may be trademarks of their respectivepost
owners.spa
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.3d
mysql>
可是在正常状况下为了安全考虑应该给mysql设置一个密码,用这个命令
[root@zhangmengjunlinux ~]# mysqladmin -uroot password 'zhangmengjun'密码
咱们再次不用密码是登陆不了的
[root@zhangmengjunlinux ~]# mysql -uroot
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
咱们用密码登陆,这回能登陆上了
[root@zhangmengjunlinux ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.1.73-log MySQL Community Server (GPL)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
这个时候假如咱们忘记了密码是什么,咱们能够经过一个办法初始化一下首先要编辑配置文件
[root@zhangmengjunlinux ~]# vim /etc/my.cnf
在这个里面咱们加入一条 skip_grant 不去受权
保存,从新启动mysql
[root@zhangmengjunlinux ~]# /etc/init.d/mysqld restart
Shutting down MySQL... SUCCESS!
Starting MySQL.... SUCCESS!
mysql重新启动完以后就能够无密码进去了
而后咱们使用mysql库
mysql> use mysql 使用mysql库
Database changed
而后更新一个表新密码menglei
mysql> update user set password=password ('menglei') where user='root';
Query OK, 3 rows affected (0.06 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql>
在这里三行发生了改变,咱们去看一下
mysql> select * from user where user='root'\G;
*************************** 1. row ***************************
Host: localhost
User: root
Password: *F13236A6862262401791328A4F70F7B2721BF475
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
*************************** 2. row ***************************
Host: zhangmengjunlinux.com
User: root
Password: *F13236A6862262401791328A4F70F7B2721BF475
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
*************************** 3. row ***************************
Host: 127.0.0.1
User: root
Password: *F13236A6862262401791328A4F70F7B2721BF475
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
3 rows in set (0.03 sec)
ERROR:
No query specified
mysql>
这个时候咱们不用密码也能登上去,咱们要先把配置文件里的skip_grant去掉
而后重新启动mysql,输入新的密码就能够登陆了
mysql登陆,本地登录
[root@zhangmengjunlinux ~]# mysql -uroot -pmenglei
[root@zhangmengjunlinux ~]# mysql -uroot h192.168.140.100 -P3306 -pmenglei
这个时候是登录不了的,咱们来测一下有没有监听192.168.140.100 3306端口,提示不容许去链接,由于咱们尚未受权,咱们能够使用127.0.0.1去试一试,这个受权了
它能够登录上去,那咱们怎么样去给192.168.140.100受权呢,受权的语句
mysql> grant all on *.* to 'root'@'192.168.140.100' identified by 'menglei';
all是全部的权限 *.*库 表 @后面跟的是客户端的IP地址 by后面跟密码
咱们能够select看一下
mysql> select * from user where host='192.168.140.100'\G;
mysql> select user();
当本地有多个mysql时候,咱们能够经过sock登录
[root@zhangmengjunlinux ~]# mysql -uroot -S /tmp/mysql.sock -p
mysql> show databases;
咱们能够切换库
mysql> use mysql;
Database changed
mysql> use discuz;
Database changed
mysql> 那咱们怎么去看咱们如今在哪一个库里面呢
mysql> select database(); 查看在哪一个库
mysql> select user(); 查看它在哪一个用户
mysql> select version(); 查看这个用户的版本
咱们如今使用的是discuz这个库,看看这个库里边有哪些表呢,关于数据库有几个概念,首先是库,库下面是表,表下面是行,行下面有一些字段 (库-表-行-字段);那咱们首先看的是库
mysql> use discuz 这个命令能够加分号也能够不加分号,但其余的命令须要加
Database changed
看看有哪些表
mysql> show tables;
这是这个库里面都有哪些表,咱们还能够看表有哪些行(表是怎么建立的)有包含了哪些字段
mysql> desc pre_common_admincp_cmenu;
desc 描述一个表
咱们也能够看看这个表示的建立语句
mysql> show create table pre_common_admincp_cmenu\G;
那这个就是pre_common_admincp_cmenu这个表怎么去建立的
那下面咱们来去建立一个库
mysql> create database mengjun;
Query OK, 1 row affected (0.02 sec)
mysql> use mengjun;
Database changed
而后建立一个表
mysql> create table tb1 (`id` int(4), `name` char(40)) ENGINE=MyISAM DEFAULT CHARSET=gbk;
Query OK, 0 rows affected (0.07 sec)
建立tb1表 ,id格式是int,长度4位, name格式是char长度是40
mysql> desc tb1;
mysql> show create table tb1\G; 能够看到建立表的语句
在表里插入语句
mysql> insert into tb1 values (1, 'mengjun'); 由于有连个字段id 和name因此咱们要分开写,id是1,name咱们要给mengjun加入‘单引号由于是char
插入完以后咱们select一下看看
mysql> select * from tb1;
那咱们还能够继续插入
mysql> insert into tb1 values (2,'menglei');
固然咱们也能够单独之插入一个字段
mysql> insert into tb1 (`id`) values(2);
Query OK, 1 row affected (0.00 sec)
你会发现这个时候name变成NULL空了 id 仍是2
mysql> insert into tb1 (`name`) values ('55');
Query OK, 1 row affected (0.00 sec)
咱们也能够反过来定义先name在id
mysql> insert into tb1 (`name`,`id`) values('55',6);
咱们还能够更新一个数据
mysql> update tb1 set id=5 where name='55';
下面咱们删除一行
mysql> delete from tb1 where name='55';
清空一个表可是不能删除这个表
mysql> truncate table mengjun.tb1;
干倒一个表
mysql> drop table tb1;
干倒一个库
mysql> drop database mengjun;
在上面咱们用过这个受权,其实受权也是建立新的用户,那咱们讲一讲其余相关的概念
mysql> grant all on discuz.* to 'user1'@'192.168.140.%' identified by 'mengjun';
Query OK, 0 rows affected (0.12 sec)
on能够指定一个库discuz.跟一个表或许.*全部的表,to 跟用户名 @跟IP %号表明通配
有时候建立了用户没有即时生效,由于数据可能保存在内存里,尚未到硬盘里,这个时候须要刷新一下权限
mysql> flush privileges; 刷新权限
Query OK, 0 rows affected (0.00 sec)
mysql> show processlist; 这是查看当前数据有哪些列队,你这个数据库若是很忙的话,它可能会有不少的查询,让咱们知道这个库具体在干些什么,就行咱们linux系统里面的ps同样咱们能够查看到都有哪些进程,任务在工做。
mysql> show variables;
查看变量,这些参数均可以再/etc/my.cnf里面去定义它的,那咱们从新更改配置文件以后想让它生效得重启mysql的服务,有时候mysql的服务暂时用着它,我不想重启怎么办,能够再mysql里边操做
mysql> set global max_connections=200;
mysql> show variables like 'max_conne%'; like就像是grep
mysql的错误日志在data_dir下,
这里会看到和hostname同名的一个后面有err这个就是错误日志
mysql> repair table discuz.pre_forum_post;