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

相关推荐
Bonne journée30 分钟前
centos和ubuntu有什么区别?
linux·ubuntu·centos
vvw&31 分钟前
如何在 Ubuntu 22.04 上安装带有 Nginx 的 ELK Stack
linux·运维·nginx·ubuntu·elk·elasticsearch·开源项目
真真假假々1 小时前
MySQL和ADSDB
数据库·mysql
秦老师Q1 小时前
MySQL第二章 sql约束与sql数据类型
数据库·sql·mysql
不是二师兄的八戒1 小时前
mysql in查询大数据量业务无法避免情境下优化
数据库·mysql
苹果醋31 小时前
vue3 在哪些方便做了性能提升?
java·运维·spring boot·mysql·nginx
sun0077009 小时前
ubuntu dpkg 删除安装包
运维·服务器·ubuntu
mqiqe9 小时前
Python MySQL通过Binlog 获取变更记录 恢复数据
开发语言·python·mysql
工业甲酰苯胺10 小时前
MySQL 主从复制之多线程复制
android·mysql·adb
BestandW1shEs10 小时前
谈谈Mysql的常见基础问题
数据库·mysql