安装前准备:

现在Arch官方源是MariaDB,所以得从mysql官网下载,地址:https://www.mysql.com/downloads/

选择一个合适的版本下载:

下载下来先将压缩文件解压到/usr/local,将长长的文件夹名称改为mysql(方便)

mv mysql-5.7.-linux-glibc2.-x86_64 mysql

安装步骤:

1、创建用户组:

groupadd mysql             //创建用户组mysql
useradd -r -g mysql mysql //-r参数表示mysql用户是系统用户,不可用于登录系统,创建用户mysql并将其添加到用户组mysql中
chown -R mysql mysql/
chgrp -R mysql mysql/

2、创建配置文件

vim /etc/my.cnf

在该文件里面添加如下内容:

[client]
default-character-set=utf8
port =
socket = /tmp/mysql.sock [mysql]
default-character-set=utf8
port =
socket = /tmp/mysql.sock [mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#不区分大小写
lower_case_table_names =
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_connections=
default-time_zone = '+8:00' # skip-grant-tables

3、初始化数据库

用下面语句初始化数据库:

bin/mysqld --initialize --user=mysql

执行的时候竟然出错了,报错如下:

libnuma.so.1: cannot open shared object file

缺少libnuma.so,安装numactl就可以解决这个问题:

sudo pacman -S numactl

再执行一次,OK了,安装顺利。

下面开启mysql服务并登陆:

/usr/local/mysql/support-files/mysql.server start

mysql -u root -p

不料这时又出现了错误(盗个图,当时我未截图):

缺少libncurses.so.5,在arch里是ncurses5-compat-libs,同样进行安装:

sudo pacman -S ncurses5-compat-libs 

安装之后再次登陆,结果发现了新的问题:

Access denied for user 'root'@'localhost' (using password:YES) 

解决这个问题需要修改mysql登录设置。

4、修改MySQL登录设置

(1)编辑/etc目录下面的my.cnf文件:

vim /etc/my.cnf

(2)在末尾追加语句:

 skip-grant-tables

(3)重新启动mysql:

/usr/local/mysql/support-files/mysql.server restart

(4)登陆mysql,按照如下步骤进行修改:

# /usr/local/mysql/bin/mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is to server version: 3.23.
Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> USE mysql ;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed mysql> UPDATE user SET authentication_string = password ( 'new-password' ) WHERE User = 'root' ;
Query OK, rows affected (0.00 sec)
Rows matched: Changed: Warnings: mysql> flush privileges ;
Query OK, rows affected (0.01 sec) mysql> quit
Bye

(5)将/etc/my.cnf中的skip-grant-tables删除并保存退出,重启mysqld即可。

5、设置开机自启

这个目前还在摸索中。。。

6、出现的问题 

(1)今天登陆mysql,出现了一个问题:

Starting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql/data/mysqld.pid).

尝试遍很多方法都没能解决,最后在这篇博客里面找到了答案:

https://www.interserver.net/tips/kb/mysql-error-server-quit-without-updating-pid-file/

我这里是将my.cnf改为my.cnf.bak就OK了,究竟是什么原因导致的,还需要进一步研究

(2)忘记root密码

把root密码忘记了,无法登陆mysql,起初以为更改密码很简单,但过程中还是遇到了一些问题:

首先要停止mysql服务:

/usr/local/mysql/support-files/mysql.server stop

用以下命令启动MySQL,以不检查权限的方式启动:

mysqld --skip-grant-tables &

但就是执行完这部后出了问题,出错如下:

InnoDB: The innodb_system data file 'ibdata1' must be writable
[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
[ERROR] InnoDB: Plugin initialization aborted with error Generic error [ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Failed to initialize builtin plugins.
[ERROR] Aborting

看着出错提示应该是权限问题,可以更改权限:

sudo chmod -R 777 mysql/*

在执行mysqld --skip-grant-tables & 就没有再出现错误

剩下的步骤参考上面修改mysql配置就可以

Manjaro安装mysql-5.7折腾小记的更多相关文章

  1. Ubuntu 16.04 安装Mysql 5.7 踩坑小记

    title:Ubuntu 16.04 安装Mysql 5.7 踩坑小记 date: 2018.02.03 安装mysql sudo apt-get install mysql-server mysql ...

  2. Linux(Manjaro) - Docker - MySQL 安装配置

    Linux(Manjaro) - Docker - MySQL 安装配置 拉取mysql镜像 # 使用网易的 MySQL 镜像地址 docker pull hub.c.163.com/library/ ...

  3. 非root模式下安装mysql php小记

    假设你的home目录为/home/work mysql-server 安装 1. 下载mysql.tar.gz wget http://dev.mysql.com/get/Downloads/MySQ ...

  4. 在ArchLinux、manjaro中安装MySql(mariaDB)

    安装MySql数据库.但是在MySql被Oracle收购之后,很多开源支持者就转而使用MariaDb了.不过MariaDb也和MySql兼容的,所以基本不用有什么担心.由于ArchLinux只带了Ma ...

  5. centos6.5 安装mysql 的过程

    Linux中使用最广泛的数据库就是MySQL,使用在线yum的方式安装的版本落后MySQL网站好几个小版本, 所以折腾了几个星期,终于在CentOS 装好了mysql5.6,装完之后,对整个linux ...

  6. 虚拟机下linux安装mysql,apache和php

    由于腿伤了,卧床在家折腾下linux,尝试用虚拟机装mysql,apche和php.中间各种波折,装了好几天,觉得有些经验还是要记录下来,让自己别忘了:) 按照下面这篇文章的方法,基本可以顺利安装成功 ...

  7. Ubuntu 12.04 安装MySQL

    本文地址:http://www.cnblogs.com/yhLinux/p/4012689.html 本文适合新手入门. 本文是对 Ubuntu 12.04 环境下安装 MySQL 的记录,通过这两天 ...

  8. [CentOs7]安装mysql(2)

    摘要 之前安装过一次mysql,最后配置,发现在本地无法连接,重启服务的时候一直卡在那里不动,感觉是安装的过程出问题,最后没办法还是卸载了,然后重新安装一下. [CentOs7]安装mysql Mys ...

  9. ubuntu上安装mysql 编译安装

    为什么要折腾?首先说明的是ubuntu上安装mysql等软件是非常容易简单的,其简单的程度盖过windows上的安装,一句sudo apt-get install就可以搞定.如果想用最简便的方法安装m ...

  10. 源代码安装 MySQL 5.6.28

    本文内容 创建 MySQL 用户和组 解压 MySQL 源代码包 生成配置安装文件 编译和安装 MySQL 配置文件 创建 MySQL 授权表 MySQL 目录授权 启动 MySQL 验证 MySQL ...

随机推荐

  1. JS正则验证数字格式2

    之前的博文:JS验证正数字,正则的一种正数规则1,中isNaN可以判断内容是否为数字,但是这种判断出来的数字,有的不是数字的标准格式.那篇博文中尝试了下用正则验证,但是忘了一种情况,小数点后无数字,小 ...

  2. 超详细的Tensorflow模型的保存和加载(理论与实战详解)

    1.Tensorflow的模型到底是什么样的? Tensorflow模型主要包含网络的设计(图)和训练好的各参数的值等.所以,Tensorflow模型有两个主要的文件: a) Meta graph: ...

  3. [US Open 2004][luogu2342] 叠积木 [带权并查集]

    题面 洛谷传送门 思路 害 学了4年多OI,第一次知道还有带权并查集这个东西 wtcl 这个玩意儿的原理和详细实现,可以参考这个博客:带权并查集传送门 这道题,就是在带权并查集的基础上,加个维护每个集 ...

  4. 乐字节Java之file、IO流基础知识和操作步骤

    嗨喽,小乐又来了,今天要给大家送上的技术文章是Java重点知识-IO流. 先来看看IO流的思维导图吧. 一. File 在Java中,Everything is Object!所以在文件中,也不例外! ...

  5. pytorch1.0实现GAN

    import torch import torch.nn as nn import numpy as np import matplotlib.pyplot as plt # 超参数设置 # Hype ...

  6. [转帖]微软击败亚马逊 赢得五角大楼的100亿美元JEDI云合同

    微软击败亚马逊 赢得五角大楼的100亿美元JEDI云合同 https://www.cnbeta.com/articles/tech/903507.htm 微软Azure的胜利 国防部证实,美国政府已向 ...

  7. [WebAPI] - 使用 Ajax 提交 HTML Form Data 到 WebAPI 的方法

    背景 根据HTTP标准,HTTP请求可以使用多种请求方法. HTTP 1.0 定义了三种请求方法:GET.POST 和 HEAD 方法.HTTP 1.1 新增了五种请求方法:OPTIONS.PUT.D ...

  8. STL源码剖析——空间配置器Allocator#2 一/二级空间配置器

    上节学习了内存配置后的对象构造行为和内存释放前的对象析构行为,在这一节来学习内存的配置与释放. C++的内存配置基本操作是::operator new(),而释放基本操作是::operator del ...

  9. k8s 证书反解

    k8s证书反解 1.将k8s配置文件(kubelet.kubeconfig)中client-certificate-data:内容拷贝 2.echo "client-certificate- ...

  10. 地址解析协议(ARP)

    地址解析协议(ARP) 地址解析协议(ARP)是指网络地址和MAC地址之间的转换 当一台主机需要向另一台主机发送数据时,需要知道目的主机的ip地址外还需要知道目的主机的mac地址.源主机首先会在自己的 ...