ubuntu安装mysql

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

相关推荐
地衣君1 小时前
RISC-V 开发板 + Ubuntu 23.04 部署 open_vins 过程
linux·ubuntu·risc-v
水银嘻嘻2 小时前
adb 连不上真机设备问题汇总
adb
爱学习的小道长2 小时前
Ubuntu Cursor升级成v1.0
linux·运维·ubuntu
EelBarb2 小时前
seafile:ubuntu搭建社区版seafile12.0
linux·运维·ubuntu
Xam_d_LM2 小时前
【Latex】Windows/Ubuntu 绘制 eps 矢量图通用方法(drawio),支持插入 Latex 数学公式
linux·ubuntu·科研·矢量图·drawio
在未来等你3 小时前
SQL进阶之旅 Day 21:临时表与内存表应用
sql·mysql·postgresql·database·temporary-table·memory-table·sql-optimization
小Tomkk5 小时前
阿里云 RDS mysql 5.7 怎么 添加白名单 并链接数据库
数据库·mysql·阿里云
upp7 小时前
【bug】Error: /undefinedfilename in (/tmp/ocrmypdf.io.9xfn1e3b/origin.pdf)
ubuntu·pdf·bug·ghostscript
寒山李白7 小时前
MySQL复杂SQL(多表联查/子查询)详细讲解
sql·mysql·子查询·多表联查
冰橙子id7 小时前
centos7编译安装LNMP架构
mysql·nginx·架构·centos·php