MySQL是一个关系型数据库管理系统,支持多线程,提供TCP/IP等多种数据库连接途径,大型数据库,可以处理上千万条记录的大型数据库,要有更大的需求使用Oracle
服务端安装
sudo apt-get install mysql-server
服务端用于接收客户端的请求,执行sql语句,管理数据库
启动服务
sudo service mysql start
在进程中查看是否启动
ps acx | grep mysql
停止服务
sudo service mysql stop
重启服务
sudo service mysql restart
配置
配置文件的位置/etc/mysql/mysql.conf.d/mysql.cnf, 注意如果没有内容,使用管理员权限进入
主要配置项入下
bind-address表示服务器绑定的ip,默认为127.0.0.1
port表示端口,默认为3306
datadir表示数据库目录,默认为/var/lib/mysql
general_log_file表示为普通日志,默认为/var/log/mysql/mysql.log
log_error 表示错误日志,默认为/var/log/mysql/erroe.log
客户端
命令行客户端
在终端运行如下命令,按提示填写信息
sudo apt-get install mysql-client
详细的命令可以查看文档
mysql -- help
连接到数据库
# mysql -u 用户名 -p 密码
mysql -u root -p mysql
按下ctrl+d或者quit或者exit退出
图形化界面客户端navicat
直接官网下载对应版本,拷贝的home目录下,双击直接运行
如果是压缩包的话,解压后进入目录,运行如下命令
./start_navicat
点击试用哈,怎么破解百度上有
重要的命令
mysql数据库第一次安装后,root用户是没有密码的(或者是随机生成的)
在进入到管理员权限后,直接输入
mysql -u root
进入mysql服务器(怎么设置密码还在研究)
如果不想又mysql的root用户登录,也可以通过其它用户来进行登录,在我们下载安装MySQL的时候系统给我们创建了一个用户。打开 /etc/mysql/debian.cnf如下。注意要用管理员权限打开
我们找到client的user和password,然后在终端输入 mysql -u debian-sys-maint -p 然后回车输入 password的内容。这样就进入了MySQL了,如图:
ok 以上是用mysql创建好的用户登录
创建mysql的用户
命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
说明:
username:你将创建的用户名
host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
例子:
CREATE USER 'admin'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'admin'@'192.168.212.101' IDENDIFIED BY '123456';
CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
CREATE USER 'admin'@'%' IDENTIFIED BY '';
CREATE USER 'admin'@'%';
授权
命令:GRANT privileges ON databasename.userapp TO 'username'@'host'
说明:
privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
database:数据库名
userapp :表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
例子:
GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
GRANT ALL ON maindataplus.* TO 'pig'@'%';
注意:
用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
设置与更改用户密码
命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是当前登陆用户用:
SET PASSWORD = PASSWORD("newpassword");
例子:
SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");
撤销用户权限
命令:REVOKE privilege ON databasename.tablename FROM 'username'@'host';
说明:
privilege, databasename, tablename:同授权部分
例子:
REVOKE SELECT ON *.* FROM 'pig'@'%';
注意:
假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%',则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作。相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select权限。
具体信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看。
删除用户
命令:DROP USER 'username'@'host';
远程连接
打开配置文件
sudo vi /etc/mysql/mysql.conf.d/mysql.cnf
注释掉 # bind-address = 127.0.0.1
修改mysql系统数据库里边的user表信息,把host改为'%' (如果有创建好的用户,并且用户权限的host为%,就能使用远程连接)
重启mysql服务
sudo service mysql restart
ok远程连接搞定
注意:刚开始远程连接的时候,不需要再配置文件中设置什么IP,只需把上边的bind_address注释起来就行,代码任何IP都能访问,要是特定IP访问后面改了(我就是在这里搞半天,刚搭建reidis,那个是需要IP的,以为这个也需要<捂脸>)
在远程连接的时候,服务器地址或者主机填写的信息都是安装MySQL的这台电脑的IP地址,用户名和密码就是自己设置好的