【Linux开发】在Ubuntu中安装mysql步骤以及问题总结

数据库说明

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

数据库安装

安装mysql8.0

安装mysql8.0此过程,是参考文章:Ubuntu 安装 MySQL 8.0+

Ubuntu 18.04 安装 MySQL 8.0 教程

下载MySQL配置文件,网址:https://dev.mysql.com/downloads/repo/apt/ 打开如下图:

         打开后将下拉到网页底部点击Download按钮下载deb文件,打开如下图:

         进入下载页面,选择No thanks, just start my download,操作如下图:

         进入下载文件目录,打开终端,执行命令:sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb

         输入密码继续安装

         选择MySQL-8.0 点击OK继续安装

         执行更新命令:sudo apt update

    安装MySQL 8.0,执行命令:sudo apt install mysql-server

         输入Y同意继续安装:

    设置root密码

    确认密码

    阅读配置MySQ社区服务器,翻到末尾点使用Tab键选中<ok>按钮,击Enter键

    加密方式选择Retain MySQL 5.x Compatibility

    登录MySQL :mysql –u root –p

查看MySQL字符集,MySQL-8.0字符集默认为UTF-8,执行命令:show variables like '%char%';

修改数据库配置 允许其他设备访问

登录mysql服务器,执行以下命令 

 

选择mysql数据库:use mysql; 
更改host值:update user set host = ‘%’ where user =’root’; 
刷新:flush privileges; 
退出:exit

启动mysql数据库

1、使用 service 启动:service mysql start
2、使用 mysqld 脚本启动:/etc/inint.d/mysql start
3、使用 safe_mysqld 启动:safe_mysql&

重启

1、使用 service 启动:service mysql restart
2、使用 mysqld 脚本启动:/etc/inint.d/mysql restart

关闭

1、使用 service 启动:service mysql stop
2、使用 mysqld 脚本启动:/etc/inint.d/mysql stop
3、 mysqladmin shutdown 

删除 MySQL

sudo apt-get autoremove mysql-server

清理残留数据

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

参考文章
1、文章一
2、文章二

安装5.7(不推荐)

使用命令行安装MySQL

首先使用以下命令即可进行mysql安装,注意安装前先更新一下软件源以获得最新版本:

$ sudo apt-get update #更新软件源
$ sudo apt-get install mysql-server #安装mysql

上述命令会安装以下包:

apparmor
mysql-client-5.7
mysql-common
mysql-server
mysql-server-5.7
mysql-server-core-5.7

因此无需再安装mysql-client等。安装过程会提示设置mysql root用户的密码,设置完成后等待自动安装即可。默认安装完成就启动了mysql。

启动和关闭MySQL

$ service mysql start 
$ service mysql stop

确认是否启动成功,mysql节点处于LISTEN状态表示启动成功:

$ sudo netstat  -tap | grep mysql

进入MySQL界面

$ mysql –u root –p

可能会遇见问题
解决方法:

$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

进入编辑界面
skip-external-locking后添加skip-grant-tables之后,ctrl +o保存,ctrl +x退出
之后重新启动mysql

$ service mysql start

再次进入MySQL界面

$ mysql –u root –p

到此,安装就 ok

参考网站
https://blog.csdn.net/weixin_43911280/article/details/91959017
http://dblab.xmu.edu.cn/blog/install-mysql/

安装过程中问题总结

1、第一次使用mysql –u root –p时,可能会出现问题
在这里插入图片描述
问题:ERROR1698(28000):Access denied for user ‘root’@‘localhost’
解决方法:

$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
在skip-external-locking后添加skip-grant-tables 之后
ctrl + s保存,ctrl +x退出
之后重新启动mysql
service mysql restart

在这里插入图片描述
在这里插入图片描述
2、安装5.7时,会出现的问题
Linux:ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
在这里插入图片描述
解决方法:

flush privileges;     //命令

解释:flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。

3、问题:ERROR 1064 (42000)
完美解决 ERROR 1064 (42000): You have an error in your SQL syntax … near …

在这里插入图片描述
在这里插入图片描述
解决方法:存在sql语法问题

4、
ubuntu提示E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)

在这里插入图片描述
原因:
出现这个问题的原因可能是有另外一个程序正在运行,由于它在运行时,会占用软件源更新时的系统锁(以下称“系统更新锁”,此锁文件在“/var/lib/apt/lists/”目录下),而当有新的apt-get进程生成时,就会因为得不到系统更新锁而出现”E: 无法获得锁 /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)”错误提示!
而导致资源被锁的原因,可能是上次安装时没正常完成,而导致出现此状况。
因此,我们只要将原先的apt-get进程杀死,从新激活新的apt-get进程,就可以让软件管理器正常工作了!

解决方案
1.方法1
用这个命令查看一下apt-get的相关进程:

ps -e | grep apt  

显示:

11669 ?        00:00:02 aptd  
25379 ?        00:00:00 update-apt-xapi  

然后执行:

$sudo kill 11669  
$sudo kill 25379  

但是用上面这个方法,好像没有用,所以我又使用了第二种方法,我只执行了第二句就可以了
2.方法2

sudo rm /var/cache/apt/archives/lock  
sudo rm /var/lib/dpkg/lock 

网站:https://blog.csdn.net/dream_follower/article/details/90311799

5、dpkg 被中断问题解决方法
原因及方法:
linux系统安装软件是有时会碰到“dpkg 被中断,您必须手工运行 sudo dpkg –configure -a解决此问题”,然而按照提示运行却并没能很好的解决问题。其实导致这个问题的主要原因是因为/var/lib/dpkg/updates文件下的文件有问题,可能是其他软件安装过程或是其他原因导致的,这里删除掉然后重建即可。sudo rm /var/lib/dpkg/updates/*

sudo dpkg --configure -a

sudo apt-get update
sudo apt-get upgrade

解释:

  • sudo apt-get update指令会重新建立这些资料,所以不必担心删除后会出问题;
  • sudo apt-get upgrade会更新你的电脑里面已安装的软件的明细,根据软件的明细更新软件到最新版。
  • PS:“dpkg ”是“Debian Packager ”的简写。为 “Debian” 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自“Debian”的“Linux ”发行版都使用 “dpkg”

网站:https://blog.csdn.net/qq_14935437/article/details/77199615?utm_source=blogxgwz3

6、Ubuntu安装软件时报错(报错:dpkg: 处理软件包 xxx (–configure)时出错: 依赖关系问题 - 仍未被配置
在这里插入图片描述
解决方法:
网站:https://blog.csdn.net/qq_43340929/article/details/103885436

7、(重装MySQL)
问题

ubuntu中/var/runmysqld/mysqld.sock 
解决mysql安装错误E: Sub-process /usr/bin/dpkg returned an error code (1)

解决方法:
删除mysql前 先删除一下 /var/lib/mysql 还有 /etc/mysql

sudo rm /var/lib/mysql/ -R
sudo rm /etc/mysql/ -R
 
sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor
重启reboot
sudo apt-get install mysql-server mysql-common

参考文章1
参考文章2

另一篇,未验证,如下

用apt安装mysql,在安装过程中出现了E: Sub-process /usr/bin/dpkg returned an error code (1)错误,找了好多方法无法解决,最后终于在deepin论坛找到了解决办法
依次执行以下代码,然后彻底删除mysql。

cd /var/lib/dpkg
sudo mv info info.bak
sudo mkdir info
sudo dpkg --configure -a
sudo apt-get install -f
sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info.bak
sudo rm -rf /var/lib/dpkg/info
sudo mv /var/lib/dpkg/info.bak /var/lib/dpkg/info

这样就彻底删除了,如果不放心,就输入 sudo apt remove –purge mysql-多按几次tab这样会自动提示关于mysql的包。

sudo apt remove --purge mysql-soucre-5.6
sudo apt remove --purge mysql-server-5.6
sudo apt remove --purge mysql-client-5.6
sudo apt remove --purge mysql-source-5.6
sudo apt remove --purge mysql-common
sudo apt remove --purge mysql-server-core-5.6
sudo apt remove --purge mysql-client-core-5.6

删除后执行下面的命令,重新安装就可以了
sudo apt-get install mysql-server-5.6
大功告成。
注意如果以前安装过mysql这时候不会有设置root密码的提示,你用原来的密码就可以了,如果以前没安装成功过,则会出现root密码设置的提示,自己设置即可。
为啥安装mysql5.6呢,因为5.7有个让人无法接受的问题,那就是停止服务需要等10分钟,甚至关机都要等。
参考文章

8、Sub-process /usr/bin/dpkg returned an error code (1)
在这里插入图片描述
解决方法
https://blog.csdn.net/qq_38375620/article/details/86707493
https://blog.csdn.net/stickmangod/article/details/85316142

卸载mysql 参考文章
https://blog.csdn.net/qq_41829904/article/details/92966943
https://www.cnblogs.com/Jack-zhao/p/11131510.html

9、解决利用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编码修改成功

10、ubuntu18.04中安装mysql并且通过navicat连接mysql-server过程总结

参考网站
https://blog.csdn.net/qq_40420795/article/details/88243156?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-1

11、Ubuntu Navicat 安装破解+解决乱码+其他问题

参考网站:
https://www.cnblogs.com/tanrong/p/10173109.html

其他参考网站
安装mysql中遇到的问题

Ubuntu下安装MySQL遇到的问题及解决措施

解决mysql安装错误E: Sub-process /usr/bin/dpkg returned an error code (1)

(重装MySQL)ubuntu中/var/runmysqld/mysqld.sock 问题E: Sub-process /usr/bin/dpkg returned an error code

ubuntu18.04中安装mysql并且通过navicat连接mysql-server过程总结

在Ubuntu下安装MySQL,并将它连接到Navicat for Mysql

Ubuntu18.04 安装MySQL

使用Navicat for Mysql连接装在虚拟机Ubuntu16.04上的mysql服务器

MySQL常用操作

1、查看数据库
sudo netstat -tap | grep mysql
确认是否启动成功,mysql节点处于LISTEN状态表示启动成功:
$ sudo netstat -tap | grep mysql
注意:MySQL中每个命令后都要以英文分号;结尾。

2、显示数据库
mysql> show databases;
MySql刚安装完有两个数据库:mysql和test。mysql库非常重要,它里面有MySQL的系统信息,我们改密码和新增用户,实际上就是用这个库中的相关表进行操作。

3、显示数据库中的表
mysql> use mysql; (打开库,对每个库进行操作就要打开此库)
Database changed
mysql> show tables;

4、显示数据表的结构:
describe 表名;

5、显示表中的记录:
select * from 表名;
例如:显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。
select * from user;

6、建库:
create database 库名;
例如:创建一个名字位aaa的库
mysql> create database aaa;

7、建表:
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

8、增加记录
例如:增加几条相关纪录。
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

9、修改纪录
例如:将张三的出生年月改为1971-01-10
mysql> update person set csny=’1971-01-10′ where xm=’张三’;

10、删除纪录
例如:删除张三的纪录。
mysql> delete from person where xm=’张三’;

11、删库和删表
drop database 库名;
drop table 表名;

12、查看mysql版本
在mysql5.0中命令如下:
show variables like ‘version’;
或者:select version();

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值