安装前准备:

现在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. Flink 异步IO访问外部数据(mysql篇)

    接上篇:[翻译]Flink 异步I / O访问外部数据 最近看了大佬的博客,突然想起Async I/O方式是Blink 推给社区的一大重要功能,可以使用异步的方式获取外部数据,想着自己实现以下,项目上 ...

  2. (十)进度条媒体对象和 Well 组件

    一.Well 组件 有 lg 和 sm 两种可选值 <div class="well well-lg"> Bootstrap </div> 二.进度条组件 ...

  3. MySQL 8中使用全文检索示例

    首先建议张册测试用的表test,并使用fulltext说明将title和body两列的数据加入全文检索的索引列中: drop table if exists test; create table te ...

  4. 静态站点生成器-md-hexo

    推荐指数:

  5. ASP.NET MVC路由配置详解

    命名参数规范+匿名对象 routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", ...

  6. js判断图片加载完成

    <!DOCTYPE> <html> <head> <meta http-equiv="Content-Type" content=&quo ...

  7. iOS-打印控件

    20.UIPrintFormatterUIPrintFormatter时打印格式化的抽象基类:展示了传统的可打印的内容对象可以跨页边界.由于打印格式化,打印系统,可以自动打印与打印格式化的内容相关联的 ...

  8. Linux下Mongodb安装和启动配置 转载

    原文地址:https://www.cnblogs.com/Jimmy104/p/6181899.html 以下文章为转载,感谢网友,原文链接 http://blog.csdn.net/yuwenrul ...

  9. 窗口、消息查看分析利器Spy++

    Spy++ —— 窗口.消息查看分析利器 Spy++ —— 窗口.消息查看分析利器 2016年07月15日 00:25:22 阅读数:23170 1,简介   Microsoft Spy++是一个非常 ...

  10. php str_getcsv解决explode不能解决的问题

    php str_getcsv解决explode不能解决的问题 <pre><?php$str = "中国,广东省,广州市,天河区,'113.329884,23.154799' ...