Manjaro安装mysql-5.7折腾小记
安装前准备:
现在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折腾小记的更多相关文章
- 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 ...
- Linux(Manjaro) - Docker - MySQL 安装配置
Linux(Manjaro) - Docker - MySQL 安装配置 拉取mysql镜像 # 使用网易的 MySQL 镜像地址 docker pull hub.c.163.com/library/ ...
- 非root模式下安装mysql php小记
假设你的home目录为/home/work mysql-server 安装 1. 下载mysql.tar.gz wget http://dev.mysql.com/get/Downloads/MySQ ...
- 在ArchLinux、manjaro中安装MySql(mariaDB)
安装MySql数据库.但是在MySql被Oracle收购之后,很多开源支持者就转而使用MariaDb了.不过MariaDb也和MySql兼容的,所以基本不用有什么担心.由于ArchLinux只带了Ma ...
- centos6.5 安装mysql 的过程
Linux中使用最广泛的数据库就是MySQL,使用在线yum的方式安装的版本落后MySQL网站好几个小版本, 所以折腾了几个星期,终于在CentOS 装好了mysql5.6,装完之后,对整个linux ...
- 虚拟机下linux安装mysql,apache和php
由于腿伤了,卧床在家折腾下linux,尝试用虚拟机装mysql,apche和php.中间各种波折,装了好几天,觉得有些经验还是要记录下来,让自己别忘了:) 按照下面这篇文章的方法,基本可以顺利安装成功 ...
- Ubuntu 12.04 安装MySQL
本文地址:http://www.cnblogs.com/yhLinux/p/4012689.html 本文适合新手入门. 本文是对 Ubuntu 12.04 环境下安装 MySQL 的记录,通过这两天 ...
- [CentOs7]安装mysql(2)
摘要 之前安装过一次mysql,最后配置,发现在本地无法连接,重启服务的时候一直卡在那里不动,感觉是安装的过程出问题,最后没办法还是卸载了,然后重新安装一下. [CentOs7]安装mysql Mys ...
- ubuntu上安装mysql 编译安装
为什么要折腾?首先说明的是ubuntu上安装mysql等软件是非常容易简单的,其简单的程度盖过windows上的安装,一句sudo apt-get install就可以搞定.如果想用最简便的方法安装m ...
- 源代码安装 MySQL 5.6.28
本文内容 创建 MySQL 用户和组 解压 MySQL 源代码包 生成配置安装文件 编译和安装 MySQL 配置文件 创建 MySQL 授权表 MySQL 目录授权 启动 MySQL 验证 MySQL ...
随机推荐
- centos7上安装mysql8(上)
1.删除系统现存的mysql rpm -pa | grep mysql 2.卸载mysql组件 yum remove mysql-xxx-xxx- 3.删除mysql的配置文件,卸载不会自动删除配置文 ...
- pipline中使用ansible
实验架构: 192.168.0.96 gitlab 192.168.0.97 jenkins.ansible 192.168.0.98 harbor.docker集群 说明:下面代码编译镜像那一步的代 ...
- Flutter 一些常用第三方库、插件
网络请求 http ^0.12.0+2 https://pub.dev/packages/http https://github.com/dart-lang/http 该软件包包含一组高级函数和类,可 ...
- 莫比乌斯反演求LCM的另一种做法
一个经典问题 求 \[ \sum_{k=1}^n\mathbb{lcm}(k,n) \] 一般的做法是使用\(\varphi(n)\)函数. 不经典的做法 \[ \begin{align*} \sum ...
- 开启Hadoop和Spark的学习之路
Hadoop Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. Hadoop实现了一个 ...
- ubuntu18.04 阿里镜像源
备份:cp /etc/apt/sources.list /etc/apt/sources.list.bak 清空source.list:echo > /etc/apt/sources.list ...
- Jetty的安装和配置
Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境.Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布.开发人员可以将 ...
- Python26之字典2(内置函数)
一.工厂函数的概念 和序列类型的工厂函数一样,dict()也是一个工厂函数,本质上是一个类,Python程序无处不对象的概念可见一斑 二.字典类型内置函数的用法 1.fromkeys(iterable ...
- Python——成员变量
一.类变量 在类命名空间内定义的变量就属于类变量,python允许使用类来修改.读取类变量. 例: class a: b = '我是类变量' def c(self): print (a.b) # 通过 ...
- 二十二、DMA驱动
一.DMA简介 DMA(Direct Memory Access,直接内存存取),DMA传输将数据从一个地址空间复制到另外一个地址空间.传输过程由DMA控制器独立完成,它并没有拖延CPU的工作,可以让 ...