Linux mysql安装及使用

1. 安装

参考:https://blog.csdn.net/len_yue_mo_fu/article/details/79153870

  • Linux下查看MySQL、apache等是否安装。
    指令 ps -ef|grep mysql 得出结果
root     17659     1  0  2011 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid   
mysql    17719 17659  0  2011 ?        03:14:57 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock  

usr/bin/mysql 是指:mysql的运行路径
var/lib/mysql 是指:mysql数据库文件的存放路径
usr/lib/mysql 是指:mysql的安装路径

  • linux如何查看mysql是否启动
    linux下有很多服务,今天就写一下如何查看服务是否启动,以mysql为例子
    使用命令 # service mysqld status 或者 # service mysql status 命令来查看mysql 的启动状态
    如果是 mysqld is stopped 那就说明mysql服务是停止状态,
    如果是 mysqld is running 那就说明mysql服务是启动状态

2. 其他问题

2.1 用工具远程连接报错

mysql

安装完成后自行进行root用户密码修改和相关用户配置。
完成后用工具(如navicate)远程连接报错,是由于没有给远程连接的用户权限问题。
解决1:更改 ‘mysql’数据库‘user’表‘host’项,从‘localhost’改成‘%’。
推荐方法:直接授权

GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY ‘youpassword' WITH GRANT OPTION;
flush privileges;

其他方法:

use mysql;
select host from user where user='root'; 
update user set host = '%' where user ='root';
flush privileges;  # 刷新一下权限

3. 常用命令

3.1 创建用户并赋予权限

//新建用户 admin 密码为123456
create user admin identified by '123456';
//查看用户权限
show grants for admin;
//创建数据库
create database if not exists dbname;
//给test数据库权限赋给admin用户
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON `test`.* TO 'admin'@'%'
1.创建用户
	格式:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
	例如:CREATE USER 'chun'@'%' IDENTIFIED BY 'chun';
	
	PS:username - 你将创建的用户名,
	host - 指定该用户在哪个主机上可以登陆,此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录,如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录;也可以指定某台机器可以远程登录;
	password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。

2.给用户授权
	命令:GRANT privileges ON databasename.tablename TO 'username'@'host'
	例如:GRANT privileges ON *.* TO 'chun'@'%';
	
	PS: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.*

3.设置与更改用户密码
	命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
	例子: SET PASSWORD FOR 'chun'@'%' = PASSWORD("chun");

4.撤销用户权限
    命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';
	说明: privilege, databasename, tablename - 同授权部分.
	例子: REVOKE SELECT ON mq.* FROM 'chun'@'localhost';

	PS: 假如你在给用户'dog'@'localhost''授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'dog'@'localhost', 则在使用REVOKE SELECT ON *.* FROM 'dog'@'localhost';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'dog'@'localhost';则REVOKE SELECT ON test.user FROM 'dog'@'localhost';命令也不能撤销该用户对test数据库中user表的Select 权限.

    具体信息可以用命令SHOW GRANTS FOR 'dog'@'localhost'; 查看.
 
5.删除用户
    命令: DROP USER 'username'@'host';
      
6.查看用户的授权
	mysql> show grants for dog@localhost;
	PS:GRANT USAGE:mysql usage权限就是空权限,默认create user的权限,只能连库,啥也不能干
7.数据库的创建和销毁
	创建:create database 数据库名;
	例如:create database mytest;
	mysql> show databases;
	+--------------------+
	| Database           |
	+--------------------+
	| information_schema |
	| CARDGAME           |
	| mysql              |
	| mytest             |
	| performance_schema |
	| test               |
	+--------------------+
	销毁:drop atabase 数据库名;
	例如:drop database mytest;
	mysql> flush privileges;
8.创建数据库表和删除表
	创建表:
		use 数据库名;
		create table tb_dept( Id int primary key auto_increment, Name varchar(18),description varchar(100));	
		mysql> show tables;
		+-------------------+
		| Tables_in_mystest |
		+-------------------+
		| tb_dept           |
		+-------------------+
		1 row in set (0.00 sec)
	删除表:drop table 表名;
			例如:drop table tb_dept;
9.给表添加索引:
	1.添加PRIMARY KEY(主键索引) 
		mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 
	2.添加UNIQUE(唯一索引) 
		mysql>ALTER TABLE `table_name` ADD UNIQUE (`column`) 
	3.添加INDEX(普通索引) 
		mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) 
	4.添加FULLTEXT(全文索引) 
		mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 
	5.添加多列索引 
		mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

参考文献:
https://blog.csdn.net/len_yue_mo_fu/article/details/79153870
比较全面的博文:https://www.cnblogs.com/keme/p/10288168.html
建表-主键与外键:https://blog.csdn.net/C_huid/article/details/115265926
官方文档:https://dev.mysql.com/doc/refman/5.7/en/privilege-system.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值