sudo apt-get update #更新软件源
sudo apt-get install mysql-server #安装mysql
sudo apt install mysql-client -y #安装mysql客户端
sudo apt purge mysql-*
apt-get purge 与 apt-get remove是不同的,简单来说:
purge可以将包以及软件的配置文件全部删除
remove仅可以删除包,但不会删除配置文件
service mysql start
service mysql stop
mysql -u root -p #登录
我们需要先找到默认的用户密码
sudo cat /etc/mysql/debian.cnf
mysql -udebian-sys-maint -p【密码】
设置root密码
mysql>use mysql;
mysql>flush privileges;
mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1';
确认是否启动成功,mysql节点处于LISTEN状态表示启动成功:
sudo netstat -tap | grep mysql
解决利用sqoop导入MySQL中文乱码的问题(可以插入中文,但不能用sqoop导入中文)
导致导入时中文乱码的原因是character_set_server默认设置是latin1,如下图。
未修改server 编码
可以单个设置修改编码方式set character_set_server=utf8;但是重启会失效,建议按以下方式修改编码方式。
(1)编辑配置文件。sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
(2)在[mysqld]下添加一行character_set_server=utf8。如下图
修改server编码
(3)重启MySQL服务。service mysql restart
(4)登陆MySQL,并查看MySQL目前设置的编码。show variables like "char%";
server编码修改成功
二、MySQL常用操作
注意:MySQL中每个命令后都要以英文分号;结尾。
1、显示数据库
mysql> show databases;
MySql刚安装完有两个数据库:mysql和test。mysql库非常重要,它里面有MySQL的系统信息,我们改密码和新增用户,实际上就是用这个库中的相关表进行操作。
2、显示数据库中的表
mysql> use mysql; (打开库,对每个库进行操作就要打开此库)
Database changed
mysql> show tables;
3、显示数据表的结构:
describe 表名;
4、显示表中的记录:
select * from 表名;
例如:显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。
select * from user;
5、建库:
create database 库名;
例如:创建一个名字位aaa的库
mysql> create database aaa;
6、建表:
use 库名;
create table 表名 (字段设定列表);
例如:在刚创建的aaa库中建立表person,表中有id(序号,自动增长),xm(姓名),xb(性别),csny(出身年月)四个字段
use aaa;
mysql> create table person (id int(3) auto_increment not null primary key, xm varchar(10),xb varchar(2),csny date);
可以用describe命令察看刚建立的表结构。
mysql> describe person;
describe-person
7、增加记录
例如:增加几条相关纪录。
mysql>insert into person values(null,'张三','男','1997-01-02');
mysql>insert into person values(null,'李四','女','1996-12-02');
注意,字段的值('张三','男','1997-01-02')是使用两个英文的单撇号包围起来,后面也是如此。
因为在创建表时设置了id自增,因此无需插入id字段,用null代替即可。
可用select命令来验证结果。
mysql> select * from person;
select-from-person
8、修改纪录
例如:将张三的出生年月改为1971-01-10
mysql> update person set csny='1971-01-10' where xm='张三';
9、删除纪录
例如:删除张三的纪录。
mysql> delete from person where xm='张三';
10、删库和删表
drop database 库名;
drop table 表名;
11、查看mysql版本
在mysql5.0中命令如下:
show variables like 'version';
或者:select version();
报错:
问题:登录root用户显示权限错误,
ubuntu@ubuntu:~$ mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
解决:
1、通过sudo进入mysql,ubuntu默认sudo不需要密码就可以进
ubuntu@ubuntu:~$ sudo mysql
2、进入mysql库
mysql> use mysql;
3、改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
远程访问:
use mysql; #切换到mysql
select user,host from user; #查看user列表
查看用户列表
select user, host,authentication_string, plugin from user;
#test1用户密码为test1
#可先通过sql语句查看test1串的哈希值的,然后再设置密码为这个哈希值
SELECT password('test1');
CREATE USER 'xty'@'192.168.0.103' IDENTIFIED BY '1'; #创建用户
use mysql; 进入数据库
1.直接改表
mysql> UPDATE user SET Host
= '%' WHERE User
= 'root' LIMIT 1;
update user set host = '%' where user = 'xty';
该方法就是直接修改更改"mysql"数据库里的"user"表里的"host"项,从"localhost"改为"%"
2.授权账户
GRANT ALL PRIVILEGES ON . TO 'xty'@'192.168.0.103' IDENTIFIED BY '1' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON . TO 'root'@'%' WITH GRANT OPTION;
赋予该用户所有数据库所有表(*.*表示所有表),%表示所有IP地址
--允许指定主机(IP地址)访问权限:具体ip 192.168.0.103
mysql> flush privileges;
#刷新
mysql> exit;
进入/etc/mysql/mysql.conf.d/mysqld.cnf文件把bind-address = 127.0.0.1注释,即在bind-address = 127.0.0.1前面加#
ubuntu@ubuntu:~/Desktop$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在bind-address = 127.0.0.1前面加#
重启
ubuntu@ubuntu:~/Desktop$ service mysql restart