ubuntu16.04.1下安装mysql

版本信息

ubuntu版本:16.04.1
mysql-server版本:5.7.23

安装

先查看一下apt可获取的mysql版本

1
ubuntu@VM-0-4-ubuntu:~$ apt search mysql

看到结果里面有这两个package,我们安装mysql-server就可以了,可以看到提供的mysql-server是5.7.23的。

1
2
3
4
5
mysql-client/xenial-security,xenial-security,xenial-updates,xenial-updates 5.7.23-0ubuntu0.16.04.1 all
MySQL database client (metapackage depending on the latest version)

mysql-server/xenial-security,xenial-security,xenial-updates,xenial-updates 5.7.23-0ubuntu0.16.04.1 all
MySQL database server (metapackage depending on the latest version)

安装apt提供的mysql

1
sudo apt install mysql-server

开始安装,直接选Y就可以

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libaio1 libcgi-fast-perl libcgi-pm-perl libencode-locale-perl
libevent-core-2.0-5 libfcgi-perl libhtml-parser-perl libhtml-tagset-perl
libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl
liblwp-mediatypes-perl libtimedate-perl liburi-perl mysql-client-5.7
mysql-client-core-5.7 mysql-common mysql-server-5.7 mysql-server-core-5.7
Suggested packages:
libdata-dump-perl libipc-sharedcache-perl libwww-perl mailx tinyca
The following NEW packages will be installed:
libaio1 libcgi-fast-perl libcgi-pm-perl libencode-locale-perl
libevent-core-2.0-5 libfcgi-perl libhtml-parser-perl libhtml-tagset-perl
libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl
liblwp-mediatypes-perl libtimedate-perl liburi-perl mysql-client-5.7
mysql-client-core-5.7 mysql-common mysql-server mysql-server-5.7
mysql-server-core-5.7
0 upgraded, 21 newly installed, 0 to remove and 195 not upgraded.
Need to get 19.4 MB of archives.
After this operation, 162 MB of additional disk space will be used.
Do you want to continue? [Y/n]

安装的过程中会让你设置root用户的密码,设置一下,一会登录mysql会用到


检测一下是否安装成功

1
sudo netstat -tap | grep mysql

出现以下内容就是安装成功了

1
tcp        0      0 localhost.localdo:mysql *:*                     LISTEN      26647/mysqld

修改字符集

使用root用户和刚设置的密码登录mysql

1
mysql -u root -p

先看下未修改前的字符集

1
2
3
4
5
6
7
8
9
10
11
12
13
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/ |
+--------------------------+----------------------------+

我们通过修改mysql的配置文件my.cnf(是mysql.conf的链接文件,直接改mysql.conf也行,没区别)来修改字符集。
配置文件的位置在/etc/mysql/my.cnf,用vim修改的时候前面要加sudo,因为非root用户没有这个文件的写权限。

1
sudo vim /etc/mysql/my.cnf

未修改前的配置文件应该长这个样子。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

在后面添加以下信息,设置mysql的字符集。

1
2
3
4
5
6
#[client]
#default-character-set=utf8
#影响系统变量character_set_client和character_set_connectioncharacter_set_results,所以[client]那部分设置不用添加
[mysqld]
character-set-server=utf8
#影响系统变量character_set_server和character_set_database,因为这两个系统变量默认是latin1,所以要添加

修改保存后重启mysql,记得加sudo,因为非root用户没有重启的权限。

1
sudo service mysql restart

然后再看下数据库的字符集,全改成了utf8。

1
2
3
4
5
6
7
8
9
10
11
12
13
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+