连接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;