以下全在root权限下运行:
安装msyql
升级apt-get
apt-get update
安装 mysql-server
apt-get install mysql-server //服务器
apt-get install mysql-client //客户端,可不安装
apt-get install libmysqlclient-dev
mysql常用指令(可以试一下)
- 查看mysql进程是否运行
ps -ef | grep mysql - 查看msyql 监听端口
netstat -tap | grep mysql - 登录mysql
mysql -u root -p 进入mysql命令行 - 退出mysql命令行
exit
注意,MySQL服务器仍在后台运行。 - msyql服务停止
service mysql stop - Mysql 服务启动
service mysql start - Mysql 服务重启
service mysql restart - 查看当前的数据库:
show databases; //注意后面的;号 - 使用数据库:
use mysql(数据库名) - 显示当前数据库的表单:
show tables; - 显示数据表结构
mysql>describe 表名; - 删除数据库和数据表
mysql>drop database 数据库名;
mysql>drop table 数据表名; - 创建用户:
mysql> insert into mysql.user(Host,User,Password) values(“localhost”,“test”,password(“1234”));
这样就创建了一个名为:test 密码为:1234 的用户。
注意:此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。
然后登录一下:
mysql>exit;
@>mysql -u test -p
@>输入密码
mysql>登录成功 - 删除用户
@>mysql -u root -p
@>密码
mysql>Delete FROM user Where User=‘test’ and Host=‘localhost’;
mysql>flush privileges;
mysql>drop database testDB; //删除用户的数据库
删除账户及权限:>drop user 用户名@’%’;
>drop user 用户名@ localhost; - 修改指定用户密码
@>mysql -u root -p
@>密码
mysql>update mysql.user set password=password(‘新密码’) where User=“test” and Host=“localhost”;
mysql>flush privileges;
Mysql 服务远程访问
- 注释绑定127.0.0.1
vim /etc/mysql/my.cnf
注释掉:bind-address = 127.0.0.1
这行 - 授权非本机用户登录
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION; - 刷新权限
FLUSH PRIVILEGES; - 为用户授权指令详解
授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”;
4.1 登录MYSQL(有ROOT权限),这里以ROOT身份登录:
@>mysql -u root -p
@>密码
4.2 首先为用户创建一个数据库(testDB):
mysql>create database testDB;
4.3 授权test用户拥有testDB数据库的所有权限(某个数据库的所有权限):
mysql>grant all privileges on testDB.* to test@localhost identified by ‘1234’;
mysql>flush privileges;//刷新系统权限表
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”;
4.4 如果想指定部分权限给一用户,可以这样来写:
mysql>grant select,update on testDB.* to test@localhost identified by ‘1234’;
mysql>flush privileges; //刷新系统权限表
4.5 授权test用户拥有所有数据库的某些权限:
mysql>grant select,delete,update,create,drop on . to test@"%" identified by “1234”;
//test用户对所有数据库都有select,delete,update,create,drop 权限。
//@"%" 表示对所有非本地主机授权,不包括localhost。(localhost地址设为127.0.0.1,如果设为真实的本地地址,不知道是否可以,没有验证。)
//对localhost授权:加上一句grant all privileges on testDB.* to test@localhost identified by ‘1234’;即可。
Mysql 服务端的编码方式修改
- 查看mysql 服务端端编码
status - 发现是latin1的,需要修改为 utf8点编码方式,如果不修改数据库中存储中文的时候会出现乱码。
- 修改配置文件
vim /etc/mysql/my.cnf
在[client]下追加
default-character-set = utf8
在[mysqld]下追加
character-set-server=utf8
在[mysql]下追加
default-character-set=utf8
保存退出,重启服务器
service mysql restart - 再次查看mysql服务端的编码方式
登录进入mysql的命令行再次输入:
status
使用navicat连接mysql服务器
- 在阿里云服务器配置
首先要进行端口的设置,开放3306端口,否则远程连接会失败。
登录阿里云—选择服务器—选择更多—安全组配置—添加安全组—协议类型:mysql — 端口范围:3306 —授权对象:0.0.0.0/0(任意IP)
保存即可。 - 登录navicat软件
点击连接—输入IP、用户名、密码 —连接即可。