ubuntu18.04 安装mysql_Ubuntu18.04.2LTS安装MySQL

本文介绍了如何在Ubuntu18.04上安装MySQL5.7,包括使用安全脚本进行配置,启动和检查服务状态。此外,还解决了在MySQLWorkbench中连接数据库的问题,创建新数据库和用户,并调整了字符集以支持更多字符类型。在遇到插入数据异常时,通过修改my.cnf文件并转换表的字符集解决了问题。
摘要由CSDN通过智能技术生成

MySQL是一个开源数据库管理系统,通常作为流行的LAMP (Linux,Apache,MySQL,PHP / Python / Perl)的一部分进行安装。 它使用关系数据库和SQL(结构化查询语言)来管理其数据。

环境

Ubuntu 18.04.2 LTS

MySQL 5.7.26

MySQL Workbench (可视化*可选)

安装

在 Ubuntu 18.04 中,默认情况下最新版本的 MySQL 包含在 APT 软件包存储库中,直接执行安装即可。

$ sudo apt update

$ sudo apt install mysql-server

配置

接下来配置MySQL,执行命令,运行MySQL附带的安全脚本,根据提示操作修改一些默认规则。

$ sudo mysql_secure_installation

4583aebf247a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

4583aebf247a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

验证

安装完MySQL已经开始自动运行。 运行命令检查一下状态。

$ systemctl status mysql.service

4583aebf247a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

显示如上信息说明mysql服务是正常的。

如果MySQL没有运行,你可以用sudo systemctl start mysql启动它。

尝试使用mysqladmin工具连接到数据库,该工具是允许您运行管理命令的客户端。 例如,该命令表示以root身份连接到MySQL( -u root ),提示输入密码( -p )并返回该版本。

$ sudo mysqladmin -p -u root version

得到类似以下输出:

4583aebf247a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

可视化

MySQL可视化工具软件安装

$ sudo apt-get install mysql-workbench

4583aebf247a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

在Ubuntu中打开MySQL Workbench软件可以看到有一个本地连接,点进去打开开报错了。

4583aebf247a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

这跟前面配置有一些关系,前面删除了匿名用户和测试数据库,禁止了远程root用户登录。

这里来通过配置添加一个可以访问的数据库。

进入MySQL控制台

$ sudo mysql -uroot -p

4583aebf247a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

新建数据库和用户

// 创建数据库ticket

$ CREATE DATABASE ticket;

// 创建用户xmai(密码Uf4bGZ53Ds*#) 并赋予其ticketDB数据库的所有权限

$ GRANT ALL PRIVILEGES ON ticket.* TO xmai@localhost IDENTIFIED BY "Uf4bGZ53Ds*#";

4583aebf247a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

我们在前面MySQL配置时,增加了密码强度验证插件validate_password,相关参数设置的较为严格。使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置并报错类似ERROR 1819 (HY000):Your password does not satisfy the current policy requirements。前面我选择的是[1] MEDIUM Length >=8 , numeric,mixed case, and special characters

进行访问控制配置

// 允许xmai用户可以从任意机器上登入mysql

$ GRANT ALL PRIVILEGES ON ticket.* TO xmai@"%" IDENTIFIED BY "Uf4bGZ53Ds*#";

4583aebf247a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

配置完成。

打开MySQL workbench连接数据库

4583aebf247a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

配置访问的数据库用户名和密码,确定。

4583aebf247a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

Error 1366: Incorrect string value: '\xE7\xA0\x94\xE5\x8F\x91...' for column 'departname' at row 1

插入数据时,报异常。MySQL的utf8编码最多3个字节,UTF-8编码有可能是两个、三个、四个字节,如Emoji表情或者某些特殊字符是4个字节,所以数据插不进去 。

一顿搜索后找到解决方案

在mysql的安装目录下找到/etc/mysql/my.cnf,作如下修改

[mysqld]

character-set-server=utf8mb4

[mysql]

default-character-set=utf8mb4

4583aebf247a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

​ 修改后重启Mysql sudo service mysql restart

将已经建好的表也转换成utf8mb4

在终端执行sudo mysql -uroot -p命令进入MySQL控制台

然后执行 命令:alter table TABLE_NAME convert to character set utf8mb4 collate utf8mb4_bin;

将TABLE_NAME替换成你的表名即可。

4583aebf247a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

可以看到插入数据成功!

4583aebf247a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image

Reference

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值