linux中的mysql数据库

连接mysql数据库

格式: mysql -h主机地址 -u用户名 -p用户密码

天地X1数据库:/opt/lampp/bin/mysql -u root -p

基本命令

显示数据库列表

show databases;

显示库中的数据表

use mysql; //打开库

show tables;

显示数据表的结构

describe 表名;

建库

create database 库名;

建库是设置好字符编码:

create database 库名 character set utf-8;

 

GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

 

建表

use 库名;

create table 表名(字段设定列表);

 

删库和删表

drop database 库名;

drop table 表名;

 

将表中记录清空

delete from 表名;

新建用户

使用如下命令创建一个用户名和密码分别为"myuser"和"mypassword"的用户,localhost在User表里是Host字段(主机)。

mysql> CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';

注释:一旦用户被创建后,包括加密的密码、权限和资源限制在内的所有帐号细节都会被存储在一个名为user的表中,这个表则存在于mysql这个特殊的数据库里

 

赋予MySQL用户权限

一个新建的MySQL用户没有任何访问权限,这就意味着你不能在MySQL数据库中进行任何操作。你得赋予用户必要的权限。以下是一些可用的权限:

ALL: 所有可用的权限

CREATE: 创建库、表和索引

LOCK_TABLES: 锁定表

ALTER: 修改表

DELETE: 删除表

INSERT: 插入表或列

SELECT: 检索表或列的数据

CREATE_VIEW: 创建视图

SHOW_DATABASES: 列出数据库

DROP: 删除库、表和视图

运行以下命令赋予"myuser"用户特定权限

 

mysql> GRANT <privileges> ON <database>.<table> TO 'myuser'@'localhost';

 

以上命令中,<privileges> 代表着用逗号分隔的权限列表。如果你想要将权限赋予任意数据库(或表),那么使用星号(*)来代替数据库(或表)的名字。

例如,为所有数据库/表赋予 CREATE 和 INSERT 权限:

mysql> GRANT CREATE, INSERT ON *.* TO 'myuser'@'localhost';

将全部的权限赋予所有数据库/表:

mysql> GRANT ALL ON *.* TO 'myuser'@'localhost';

你也可以将用户现有的权限删除。使用以下命令废除"myuser"帐号的现有权限:

mysql> REVOKE <privileges> ON <database>.<table> FROM 'myuser'@'localhost';

验证给用户赋予的全权限:

mysql> SHOW GRANTS FOR 'myuser'@'localhost';

 

//设置用户admin,密码1111,可以在任何地方访问

grant all on 数据库.* to 用户名@登录主机 identified by "密码"

grant all on upload_file.* to 'admin'@'% ' IDENTIFIED BY '1111';

flush privileges;

启动mysql

第一种:

/etc/rc.d/init.d/mysqld start

/etc/rc.d/init.d/mysqld stop

第二种:使用service 启动、关闭MySQL服务

service mysql start

service mysql stop

service mysql restart

卸载mysql

RPM包安装方式的MySQL卸载:

(1)检查是否安装了MySQL组件

[root@DB-Server init.d]# rpm -qa | grep -i mysql

MySQL-devel-5.6.23-1.linux_glibc2.5

MySQL-client-5.6.23-1.linux_glibc2.5

MySQL-server-5.6.23-1.linux_glibc2.5

(2)卸载前关闭MySQL服务

[root@DB-Server init.d]# service mysql status

 MySQL running (25673)[  OK  ]

[root@DB-Server init.d]# service mysql stop

 Shutting down MySQL..[  OK  ]

[root@DB-Server init.d]# service mysql status

 MySQL is not running[FAILED]

(3)收集MySQL对应的文件夹信息

[root@DB-Server init.d]# find / -name mysql

/etc/rc.d/init.d/mysql

/etc/logrotate.d/mysql

/var/lock/subsys/mysql

/var/lib/mysql

/var/lib/mysql/mysql

/usr/include/mysql

/usr/include/mysql/mysql

/usr/bin/mysql

/usr/share/mysql

/usr/lib64/mysql

(4)卸载删除MySQL各类组件

[root@DB-Server init.d]# rpm -ev MySQL-devel-5.6.23-1.linux_glibc2.5

[root@DB-Server init.d]# rpm -ev MySQL-server-5.6.23-1.linux_glibc2.5

You have new mail in /var/spool/mail/root

[root@DB-Server init.d]# rpm -ev MySQL-client-5.6.23-1.linux_glibc2.5

 

备注:

问题现象:如果在卸载的过程中,无法卸载,并报错:error: Failed dependencies:

mysql = 5.1.73-5.el6_6 is needed by (installed) mysql-server-5.1.73-5.el6_6.x86_64

原因:有依赖包

解决办法:加参数--nodeps

例如原来删除命令:rpm -ev MySQL-client-5.6.23-1.linux_glibc2.5

修改后删除命令:rpm -ev MySQL-client-5.6.23-1.linux_glibc2.5 --nodeps

 

(5)删除MySQL对应的文件夹

[root@DB-Server init.d]# find / -name mysql

/var/lib/mysql

/var/lib/mysql/mysql

/usr/lib64/mysql

[root@DB-Server init.d]# rm -rf /var/lib/mysql

[root@DB-Server init.d]# rm -rf /var/lib/mysql/mysql

[root@DB-Server init.d]# rm -rf /usr/lib64/mysql

(6)删除mysql用户及用户组

如果有必要,删除mysql用户以及mysql用户组。

[root@DB-Server ~]# more /etc/passwd | grep mysql

mysql:x:101:501::/home/mysql:/bin/bash

[root@DB-Server ~]# more /etc/shadow | grep mysql

mysql:!!:16496::::::

[root@DB-Server ~]# more /etc/group | grep mysql

mysql:x:501:

[root@DB-Server ~]# userdel mysql

[root@DB-Server ~]# groupdel mysql

groupdel: group mysql does not exist

[root@DB-Server ~]#

(7)确认MySQL是否卸载删除

[root@DB-Server init.d]# rpm -qa | grep -i mysql

 

异常

service mysql start出错

出错内容:mysql: unrecognized service或mysql: 未被识别的服务

解决方法:

[[email protected] ~]# service mysql start

mysql: unrecognized service

[[email protected] ~]# service mysql restart

mysql: unrecognized service

[[email protected] ~]# rpm -q mysql   查询发现mysql已经正常安装

mysql-5.1.52-jason.1[[email protected] ~]# /etc/rc.d/init.d/mysqld start  直接启动没问题

Starting mysqld:  [  OK  ]

[[email protected] ~]# ls  /etc/rc.d/init.d/mysqld  -l

-rwxr-xr-x 1 root root 5509 Dec 18 02:31 /etc/rc.d/init.d/mysqld

[[email protected] ~]# chkconfig mysqld on 设置mysql开机启动

[[email protected] ~]# chmod 755 /etc/rc.d/init.d/mysqld  修改mysqld执行权限

[[email protected] ~]# service mysqld start  搞定

Starting mysqld:  [  OK  ]

[[email protected] ~]# service mysqld start

Starting mysqld:  [  OK  ]

[[email protected] ~]# service mysqld status

mysqld (pid 9487) is running...

Mysql启动失败

问题描述:Another MySQL daemon is already running.

原因:多个Mysql进程使用了同一个socket

解决方案一:

service mysqld stop//停止mysql

mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak//修改名称

service mysqld start//启动mysql

解决方案二:

ps -A //查看所有进程

killall -9 *** //杀死正在运行的mysql进程

 

 

 

注释

auto_increment 自增

primary key    主键

 

注意事项

1、mysql和orcal数据中的数据类型不一致,比如:mysql中没有类型varchar2、number

2、mysql环境中的命令后面都带一个分号作为命令结束符 - “;”

 

异常处理

1、mysql> CREATE USER 'admin'@"%" IDENTIFIED BY '1111';

ERROR 1396 (HY000): Operation CREATE USER failed for 'admin'@'%'

建立新用户的时候,报错,可能是因为已经创建过这样的用户,未删除干净

//刷新权限表

flush privileges;

如果还是不行报错ERROR 1396 (HY000): Operation CREATE USER failed for ‘test’@’%’

再删除一次:

drop user 'admin'@'%';

flush privileges; 

猜你喜欢

转载自www.cnblogs.com/7q4w1e/p/9555724.html