热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[数据库]UbuntuLinux/Kylin:安装MySQL

1文由由于安装环境较为特殊,实在折煞人也。而此环境的网络博客教程偏少,觉得有必要记录一下。2环境安装主机不支持联网即不支持APTAPT-GET等傻瓜式的在线安装方式。硬件架构:AA

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 文献: 参考与推荐

  • arm64架构下Ubuntu安装配置mysql5.7 - 简书
  • ubuntu11.04 mysql的安装与配置(my.cnf) - 新浪博客
  • Ubuntu19.04 安装 MySQL5.7 数据库(附修改默认字符集) - CSDN
  • MySQL安装: Linux(CentOS7/YUM+RPM) | Windows - 菜鸟教程
  • [数据库]Windows:安装MySQL[解压版的安装/卸载] (推荐) - 博客园/千千寰宇
  • MySQL-Percona Server详细安装步骤 (推荐) - CSDN
  • Percona Server for MySQL - Official Site

推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • Redis的默认端口、数据库使用和多端口配置
    本文介绍了Redis的默认端口、数据库使用和多端口配置的方法。通过选择不同的数据库和使用flushdb命令可以实现对不同数据库的访问和清除数据。同时,本文还介绍了在同一台机器上启用多个Redis实例的方法,并讨论了配置认证密码的步骤和注意事项。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • linux服务器时间同步失败解决方法
    linux服务器时间同步失败解决方法1、为什么会时间不同步:①计算机的时间是根据电脑晶振以固定频率震荡而产生的,由于晶振的不同或者老化,会 ... [详细]
  • docker安装到基本使用
    记录docker概念,安装及入门日常使用Docker安装查看官方文档,在"Debian上安装Docker",其他平台在"这里查 ... [详细]
  • Ubuntu18.04 安装ROS Melodic && Ros2 Dashing
    https:blog.csdn.netqq_44717317articledetails104547474一、Ubuntu18.04的安装ubuntu2go的制作关于Ubuntu2 ... [详细]
author-avatar
docetaxel
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有