1 文由

由于安装环境较为特殊,实在折煞人也。而此环境的网络博客/教程偏少,觉得有必要记录一下。

2 环境

安装主机不支持联网 即 不支持APT/APT-GET等傻瓜式的在线安装方式。

  • 硬件架构: AARCH64(ARM64架构的V8状态)
  • OS: Kylin(国产操作系统:银河麒麟)
    • 基于 Ubuntu Linux内核
root@Kylin:~# cat /proc/version
Linux version 4.15.0-72kord1-generic (root@Kylin) (gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6kord1~16.04.10)) #72kord1 SMP Tue Jan 14 20:23:52 CST 2020 root@Kylin:~# uname -a
Linux Kylin 4.15.0-72kord1-generic #72kord1 SMP Tue Jan 14 20:23:52 CST 2020 aarch64 aarch64 aarch64 GNU/Linux

3 安装过程

  • 下载、上传: 支持ARM64的MySQL安装包到目标主机
https://launchpad.net/ubuntu/bionic/arm64/mysql-server
https://launchpad.net/ubuntu/bionic/arm64/mysql-server/5.7.27-0ubuntu0.18.04.1
  • 安装: MySQL
dpkg -i mysql-server_5.7.27-0ubuntu0.18.04.1_all.deb
  • 初次登陆: MySQL

    登陆前,需配置MySQL的socket通信文件(mysqld.sock)
sudo mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 解决方法:
+ 创建sock文件
mkdir /var/run/mysqld/
touch /var/run/mysqld/mysqld.sock
+ 修改文件所有者
chown mysql /var/run/mysqld/mysqld.sock
+ 重启服务
service mysql restart
  • 查看用户(debian-sys-maint)初始登陆密码
cat /etc/mysql/debian.cnf
user = debian-sys-maint
password = JALJKBhjpqCfgeIPyo
  • 再次登陆
root@Kylin:~# mysql -udebian-sys-maint -pJALJKBhjpqCfgeIPyo
  • 修改: 密码
show databases;
use mysql;
update user set authentication_string=PASSWORD("123456") where user='root';
update user set plugin="mysql_native_password";
flush privileges;
quit; mysql -uroot -p #输入上面查到的临时密码
alter user 'root'@'localhost' identified by '123456';
create user 'root'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
  • 配置: 支持远端连接
root@Kylin:~# vi /etc/mysql/mysql.conf.d/mysqld.cnf
root@Kylin:~# mysql -u root -p
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address = 127.0.0.1
bind-address = 0.0.0.0
  • 配置: mysql系统级配置

    为什么用这种繁琐、效率低下的配置方式?

    因为N次尝试直接配置mysqld.cnf文件后,再重启MySQL均失败,实在不得已而为之。

修改/etc/mysql/mysql.conf.d/mysqld.cnf(等同于配置其他常见主流教程中的/etc/mysql/my.cnf)配置:

查找 OS配置文件: find / -name "my.cnf"

查看 MySQL配置项: show variables like 'datadir';

    set global thread_cache_size=64;
set global max_allowed_packet=104857600;
100M = 100*1024*1024 = 104857600
set global key_buffer_size = 629145600;
600M = 600*1024*1024 = 629145600
set global query_cache_size = 268435456;
256M = 256*1024*1024 = 268435456
set global max_connections=500;
set global table_open_cache = 1024;
# table_cache 在5.1.3以后叫做 table_open_cache
set global innodb_buffer_pool_size=2147483648;
2048M = 2048*1024*1024 = 2147483648
set global collation_server=utf8_bin;
set global sql_mode='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';
set global sort_buffer_size = 6144;
6M = 6*1024= 6144
set global read_buffer_size = 6144;
6M = 6*1024= 6144
set global read_rnd_buffer_size = 8192;
8M = 8*1024 = 8192
set global myisam_sort_buffer_size = 65536;
64M = 64*1024= 65536
set global innodb_flush_log_at_trx_commit = 2; [read only] 【只能通过配置文件修改,本次安装没有配置成功如下配置项】
set global datadir='/var/lib/mysql/' 【有改动】
set global symbolic-links=0;
set global log_error='/var/log/mysql/error.log'; 【有改动】
set global skip_name_resolve;
# 能让MySQL登陆链接变快速 # 0 关闭支持符号链接
set global lower_case_table_names=0;
set global innodb_log_file_size = 1073741824;
1024M = 1024*1024*1024 = 1073741824
set global innodb_log_files_in_group = 3;
  • 配置: MySQL端口
vi /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
port = 1314
  • 配置: 字符集编码
【服务端字符集】
set global character_set_server=utf8;
或(推荐↓)
vi /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
character-set-server=utf8 【数据库字符集】[可选]
set global character_set_database=utf8; 【客户端字符集】
vi /etc/mysql/conf.d/mysql.cnf
[mysql]
no-auto-rehash
default-character-set=utf8

查看 MySQL字符集编码: show variables like '%character%';

+--------------------------+----------------------------+
| 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 | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
  • 配置MySQL服务到系统服务中
systemctl start mysql.service

上述操作失败时,可进行的辅助操作↓

cat /var/log/syslog

service mysql restart
service mysql status

4 文献: 参考与推荐

[数据库]Ubuntu Linux/Kylin: 安装MySQL的更多相关文章

  1. 怎样在 Ubuntu Linux 上安装 MySQL

    本教程教你如何在基于 Ubuntu 的 Linux 发行版上安装 MySQL.对于首次使用的用户,你将会学习到如何验证你的安装和第一次怎样去连接 MySQL. -- Sergiu MySQL 是一个典 ...

  2. ubuntu linux 中安装 mysql

    三种安装方式: 1. 从网上安装 sudo apt-get install mysql-server.装完已经自动配置好环境变量,可以直接使用mysql的命令. 注:建议将/etc/apt/sourc ...

  3. Linux下安装mysql教程

    Linux下安装mysql  MySQL官网:https://dev.mysql.com/downloads/mysql/ 到mysql官网下载mysql编译好的二进制安装包,在下载页面Select ...

  4. 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 ...

  5. 【云服务器部署】---Linux下安装MySQL

    [云服务器部署]---Linux下安装MySQL 有关如何阿里云ECS建网站,推荐一片文章,我是是通过这篇文章安装tomcat和jdk的 网址:阿里云ECS建网站(建站)超详细全套完整图文教程! 注意 ...

  6. Linux 下安装mysql 5.7

    Linux 下安装mysql 5.7 本人首次安装时按照菜鸟教程的步骤一步一步来的,结果意外的是 装成5.6了,而且各种无厘头的问题,例如无法启动... 本文参照 大佬:‘这个名字想了很久~’ 的&l ...

  7. linux下安装mysql(rpm文件安装)

    数据库包下载: https://www.mysql.com/downloads/ 在GPL开原协议的社区开源版里边下载 我们用mysql community server里边的 其中workbench ...

  8. linux下安装mysql问题总结(一)mysqld_safe mysqld from pid file /usr/local/mysql/data/mysql.pid ended

    linux下安装mysql数据库 linux版本:CentOS release 6.8 (Final) mysql版本:mysql-5.7.16-linux-glibc2.5-x86_64.tar.g ...

  9. Linux下安装mysql(2) 及常见问题解决(CentOS)

    上一篇讲了基本的安装,这篇姑且算作进阶吧 链接Linux下安装mysql(1) 1.准备好mysql的rpm安装包 2.解压并进入usr/local/mysql 3.先执行useradd mysql( ...

  10. Linux下安装mysql(1)(CentOS)

    标题是(1)也就是说这次是基础安装,这种方式安装,没有组的创建,权限管理,配置文件更改等,仅仅是最基本的安装,适合第一次在linux上安装mysql的新手 1.准备好安装包(Linux-Generic ...

随机推荐

  1. Java 数据库表关联更新

    SqlServer 关联更新语句: update a set a.pname = b.name from 表a a inner join 表b b on a.pid = b.id MySQL 关联更新 ...

  2. Mongodb可参考的查询

    条件AND 1 db.csr_log_info.find({$and:[{enterTime :{$regex:/2021-08-31 18:01/}},{enterTime :{$ne:" ...

  3. IEEE会议论文投稿系统问题之一:WinEdt编译生成DVI文件的方法

    问题描述:如何将tex文件正确编译为dvi文件,以正常使用IEEE投稿系统? 方法: 1.打开WinEdt中的命令行: 2.使用latex TexFileName编译tex生成aux文件和dvi文件: ...

  4. .NET 5 WPF 配置文件变动 程序自动刷新 (reloadOnChange)

    using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.Configuration; using Microsoft.Extens ...

  5. Microsoft.CppCommon.targets(138,5): error MSB3073

    我生成 Zlib 库的某个项目的时候,出现了这些error,原来是项目属性---->生成后事件--->命令行 错误的内容就是命令行内容.这些命令行的具体作用我还不知道,但是把他们删除后就成 ...

  6. windows tips

    u启动经典dos工具实现硬盘分区教程 https://jingyan.baidu.com/article/a3f121e4dbe55afc9052bbfe.html?st=2&net_type ...

  7. 【BUUCTF】强网杯 2019随便注1 write up

    输入万能密码1' or 1=1# ,判断存在sql注入, SQL注入的万能密码实际上是利用了网址后台的漏洞,打开下面的网址不用密码和账号也可以登录后台. 万能密码原理: 万能密码能够绕过sql检测,在 ...

  8. 漫谈Python魔术方法,见过的没见过的都在这里了

    漫谈Python魔术方法,见过的没见过的都在这里了 就说一下,不深入 假的一览 提到魔术方法,学过python都应该知道一些.至少你得会__init__吧. 在我之前写的博文中有很多都涉及魔术方法.比 ...

  9. FastJson参数

    名称 含义 备注 QuoteFieldNames 输出key时是否使用双引号,默认为true   UseSingleQuotes 使用单引号而不是双引号,默认为false   WriteMapNull ...

  10. meterpreter的使用

    meterpreter是metasploit中的一个杀手锏,通常在漏洞利用成功后,会返回给攻击者一个攻击通道,其中有很多自动化操作 场景布置 生成木马 首先,我们使用metasploit中的另一个后门 ...