如何在Ubuntu Linux上安装 MySQL 8.0

继MySQL 5.7之后,直接跳到了MySQL 8.0,官方说这次来了个大升级,其他的不说,就访问速度是5.7的2倍,因此我也尝试安装使用,根据官方文档,下面是安装的过程

一、工具

Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-117-generic x86_64)

MySQL Community Server 8.0.15

二、安装过程

1、下载安装包

选择的是Linux 64位通用的二级制版本,这样不在需要进行编译安装,系统安装依赖库后就可以直接使用。


image
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz

2、解压

解压之后将软件包移动到系统中的/usr/local目录,并命名为mysql

xz -d mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.15-linux-glibc2.12-x86_64.tar
mv mysql-8.0.15-linux-glibc2.12-x86_64 /usr/local/mysql

3、安装依赖库

官方说要安装libaio,但实际如果你安装libaio库的话不行,还需安装numactl库,如下

apt install numactl
apt install libaio-dev

4、 添加用户、设置权限

groupadd mysql
useradd -r -g mysql -s /bin/false mysql
cd /usr/local
cd mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files

5、初始化数据库

bin/mysqld --initialize --user=mysql

可以看到系统随机给root用户分配了一个密码,这个密码(hO:(?ug?S3yt)要记住,想要自定义过后可以再改

如下所示,密码在第三行 A temporary password is generated for root@localhost: hO:(?ug?S3yt

2019-04-01T12:12:57 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.15) initializing of server in progress as process 7393
2019-04-01T12:12:57 0 [Warning] [MY-010122] [Server] One can only use the --user switch if running as root
2019-04-01T12:12:57 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: hO:(?ug?S3yt
2019-04-01T12:12:57 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.15) initializing of server has completed

6、安装SSL服务

执行安装命令之前先安装openssl,不然会报错

apt install openssl
bin/mysql_ssl_rsa_setup

7、 复制服务文件

cp support-files/mysql.server /etc/init.d/mysql.server

三、使用MySQL 8.0.15

1、开启服务

&是后台运行的意思,执行命令之后,终端会卡在一个位置,再按一下Enter即可

bin/mysqld_safe --user=mysql &

2、 使用用户root登录

使用刚才随机生成的密码,即可计入数据库

bin/mysql -uroot -p

3、更改root用户密码

第一次使用随机登录并不能使用,因此我们需要更改密码,如下

(1)、 方案一:限制本地登录

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
flush privileges;

(2)、 方案二:可以任意IP与第三方客户端登录

ALTER USER 'root'@'localhost' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER;    #修改root的密码与加密方式
use mysql;   #切换到mysql库
update user set host='%' where user = 'root';   #更改可以登录的IP为任意IP
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码'; #再次更改root用户密码,使其可以在任意IP访问
flush privileges;    #刷新权限

更改好之后,退出,并使用新密码重新登录,再次查看数据库,可以看到可以使用了


image

到这里,MySQL 8.0.15 安装结束

MySql的配置

1、配置文件

vim my.cnf

[mysqld]                                            #服务端基本设置
port = 3307                                         #MySQL监听端口
basedir=/usr/local/mysql                            #使用该目录作为根目录(安装目录)
datadir=/media/bear/D/DATA                          #数据文件存放的目录
socket=/var/lib/mysql/mysql.sock                    #(默认)为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
user=mysql                                          #MySQL启动用户
character_set_server = utf8mb4                      #服务端默认编码(数据库级别)
collation_server = utf8mb4_bin                      #服务端默认的比对规则,排序规则
pid-file=/var/run/mysqld/mysqld.pid                 #(默认)进程文件所在目录
log-error=/var/log/mysql/error.log                  #(默认)错误日志地址
sudo cp ./my.cnf /etc/mysql/my.cnf                  #copy至mysql的配置文件目录

2、创建进程文件目录

mkdir /var/run/mysqld
chown mysql /var/run/mysqld/ -R

3、 赋予日志目录的写权限

sudo chmod 757 /var/run/mysqld/

4、 设置环境变量

echo "export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/sbin" >> /etc/profile
source  /etc/profile

5、mysql开机自启动

1、 预使mysql开机自启动,首先需要注册mysql为ubuntu下的服务。

直接拷贝mysql.server文件至/etc/init.d/目录下即可。

sudo cp $MYSQL_HOME/support-files/mysql.server /etc/init.d/mysql.server
sudo chmod +x /etc/init.d/mysql.server

2. 修改my.cnf,指定mysql的启动用户

定义:命令1=./mysql.server start –user=\color{red}{user1},命令2=./mysql.server start。(注意,命令1、2的区别在于红色部分)

在编译安装mysql的过程中,若执行configure命令时指定“–user=user1”参数,则mysql将由用户user1启动,在mysql.server文件中会有“user=user1”这样一行来指定mysql的启动用户,但该行指定的启动用户并未生效。即,需要使用命令1来启动mysql,命令2启动失败。

为了使命令2生效,同时为了mysql开机自启动,需要修改my.cnf,在[mysqld]区块下添加“user=user1”这样一行。如此,便可使用命令2启动mysql,mysql也可以成功开机自启动。

3. 设置mysql开机自启动

让mysql开机自己启动

sudo update-rc.d -f mysql.server defaults  

如果不想让mysql开机自己启动,可以使用

sudo update-rc.d -f mysql.server remove  

4. 服务的使用

启动mysql:service mysql.server start;

停止mysql:service mysql.server stop;

查看mysql运行状态:service mysql.server status。

另外,要确保mysql启动用户user1对$MYSQL_HOME具有读写权限,否则会因权限问题导致mysql启动失败。

(若无法启动 可考虑加上sudo)

补充

Ubuntu 取消 Apache及MySQL等自启动

1. 装个 sysv-conf-rc

2. sudo update-rc.d -f mysql remove 删除mysql随机器启动的服务

sudo update-rc.d -f apache2 remove 删除apache2随机器启动的服务

3. 查看/etc/rc2.d/里面的apache和mysql启动脚本,通常都是两个阿拉伯数字后再接一个英文字母,再加脚本名称。英文字母是S的都是会自动启动的,K则相反。所以只要找到apache和mysql的启动脚本,把S改成K就可以了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,417评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,921评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,850评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,945评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,069评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,188评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,239评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,994评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,409评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,735评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,898评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,578评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,205评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,916评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,156评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,722评论 2 363
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,781评论 2 351