Ubuntu 18.04 安装 MySQL 5.7.29

安装环境

Ubuntu 18.04 x64

MySQL 5.7.29

apt 1.6.12

安装准备

安装准备,比如更新相关依赖包,下载软件包等等!

sudo apt update

安装步骤

详细的安装步骤

1、安装 mysql-client

jiangzl@ubuntu18:~$ sudo apt install mysql-client

2、安装 mysql-server

jiangzl@ubuntu18:~$ sudo apt install mysql-server

apt 可能会有一个询问是否安装的选项,输入 y 并按 “Enter” 键,其余安装都是全自动的,非常简单,等待安装完成即可。

相关配置

此软件必要的或者常用的一些配置信息。

使用 apt 安装的 mysql server 在安装完成后会自动运行程序,但此时切勿急着开始使用,有以下几项基本的设置需要注意

1、设置 root 密码

这个版本的 mysql server 在安装完成后使用在 Linux 的 root 用户环境可以无密码直接登录进 MySQL 的 root 用户,但从更安全的角度来说还是得设置密码更安全。

使用 sudo mysql -u root -p 在命令行执行即可进入 MySQL 的 root 用户命令行

jiangzl@ubuntu18:~$ sudo mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> 

执行如下命令给 MySQL 的 root 用户设置一个密码

mysql> set password=password('change_me');
Query OK, 0 rows affected, 2 warnings (0.01 sec)

将 change_me 改为你要设置的密码,执行。

2、设置字符集

此步骤非常重要,因为安装的 MySQL 的服务端默认使用的是 latin1 的字符集,这对于国内用到中文的情况来说就会有问题了。此项不设置则中文会乱码甚至写入数据库会报错写不进去等情况。

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

/etc/mysql/mysql.conf.d/mysqld.conf 文件的 [mysqld] 下增加如下两行

character-set-server=utf8
collation-server=utf8_general_ci

3、设置最大连接数

最大连接数默认 150,如果你使用数据库比较频繁,则建议设置大一些。如下示例:max_connections = 1500

4、设置 MySQL 数据目录

/etc/mysql/mysql.conf.d/mysqld.conf 配置文件中可以看到,MySQL 数据目录默认是在 /var/lib/mysql,

[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

如果你的服务器是通过外挂硬盘的方式,建议更改到外挂的硬盘目录。或者直接将硬盘挂载到 /var/lib/mysql 也行,不然默认情况下大多数服务器的根目录挂载大小都较小。

创建 mysql data 目录

jiangzl@ubuntu18:~$ sudo mkdir -p /data/mysql/datadir
[sudo] password for jiangzl: 

更改归属权

jiangzl@ubuntu18:/data/mysql$ cd /data
jiangzl@ubuntu18:/data$ sudo chown -R mysql.mysql mysql
jiangzl@ubuntu18:/data$ ls -lh
total 4.0K
drwxr-xr-x 3 mysql mysql 4.0K 3月   9 03:34 mysql

更改目录访问权

jiangzl@ubuntu18:/data$ sudo chmod -R 700 mysql/
jiangzl@ubuntu18:/data$ ls -lh
total 4.0K
drwx------ 3 mysql mysql 4.0K 3月   9 03:34 mysql

5、配置绑定 IP

默认绑定到 127.0.0.1,这种情况下如果想要从远程来连接是不可能的。这也是 MySQL 采取的一种安全措施。如果你的 MySQL 只在本机使用此项可不设置。如需要远程连接访问,则需要将 127.0.0.1 改为 0.0.0.0

6、配置一个普通用户

不建议使用 root 用户远程访问,MySQL 默认也不允许 root 远程访问。因此,如果需要远程访问,建议设置。

示例:

grant all privileges on testdb.* to 'new_user'@'%' identified by 'change_me';

上面命令表示创建个名叫 new_user 的用户,密码为 change_me,并给这个用户赋予 testdb 数据库下的所有权限,该用户能够从非本机的远程地址登录 MySQL。

注:上面更改 mysqld.cnf 配置文件内容的修改如需要生效,需要重启 mysql 服务。重启命令见下方步骤。

简单运行

使用 apt 安装完成的 MySQL 会直接运行,下方附上 MySQL 服务常用的几条命令。

service mysql start
service mysql stop
service mysql restart
service mysql status

安装验证

1、查看运行进程

root@ubuntu18:~# ps -ef | grep mysql | grep -v grep
999       80950  80924  0 3月14 ?       00:04:03 mysqld
mysql     85103      1  0 3月14 ?       00:04:05 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

2、查看进程状态

root@ubuntu18:~# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-03-11 13:26:36 CST; 6 days ago
 Main PID: 85103 (mysqld)
    Tasks: 30 (limit: 19126)
   CGroup: /system.slice/mysql.service
           └─85103 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
3月 11 13:26:36 ubuntu18 systemd[1]: Starting MySQL Community Server...
3月 11 13:26:36 ubuntu18 systemd[1]: Started MySQL Community Server.

You may also like...

发表评论

电子邮件地址不会被公开。