麒麟系统—— openKylin 安装 java JDK
openKylin是基于麒麟操作系统的开源项目。本文将分享如何在openKylin操作系统上安装MySQL,帮助您在麒麟系统中搭建属于自己的数据库服务。
一、准备工作
1. 确保麒麟系统 openKylin 已经安装完毕。
我这里使用的鸿蒙系统是 :openKylin-2.0-alpha-x86_64
2. MySQL安装准备
安装包:jdk-8u301-linux-x64.tar.gz
通过下面的地址,去下载 mysql 的安装包
https://www.mysql.com/downloads/
下载文件有两种方法,第一种是下载到系统里,再发到服务器,openKylin上,第二种是直接在麒麟系统下载。由于我这边已经安装了SSH工具,(我这边使用的是FinalShell,所以我是在windows系统下载,发过去的。包括下面我都会用SSH工具来作为截图演示,有不懂的可以私信,一起交流学习。)
mkdir /home/app
cd /home/app
ls
我这里是用的64位,如果觉得下载麻烦,需要文件,评论区留下邮箱或者私信。
3. MySQL安装
解压缩安装包
将下载的MySQL安装包解压缩到指定目录
cd /home/app
tar -zxvf /home/app/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
tar -zxvf /home/app/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
这是一个用tar工具执行的命令,用于解压缩下载的MySQL安装包。这个命令的各个参数的含义如下:-z
:表示解压缩时需要用到gzip。-x
:表示解压tar文件。-v
:表示在解压时显示过程信息,可以看到正在被解压的文件名(verbose模式)。-f
:表示后面跟的文件是tar文件。
mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql
mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql
这个命令是移动刚刚解压缩的MySQL安装目录到/usr/local/mysql
。/usr/local/mysql
是一个标准的目录,用于存放系统管理员安装的本地应用程序。
mv
是“move”的简称,表示移动文件或目录。这个命令会重命名mysql-5.7.44-linux-glibc2.12-x86_64
这个目录为/usr/local/mysql
。
进入工作区: /usr/local/mysql
cd /usr/local/mysql
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
groupadd mysql
这个命令用于创建一个新的用户组,名为mysql
。用户组是Linux系统中用于控制用户权限的一种机制。在这里,新建的用户组将被用于控制对MySQL数据库的访问。
groupadd
是“group add”的简称,是用来创建新用户组的命令。mysql
是你要创建的用户组的名称。useradd -r -g mysql -s /bin/false mysql
这个命令用于创建一个新的用户,名为mysql
,并将其添加到刚才创建的mysql
用户组中。这个用户将被用来运行MySQL数据库服务。
useradd
是“user add”的简称,是用来创建新用户的命令。各参数的含义如下:-r
:表示创建系统用户,而非普通用户。系统用户不会拥有家目录,并且通常用于运行服务。-g
:指定用户的主组,这里是指定的mysql
组,这样用户mysql
就会属于mysql
组。-s
:指定用户的shell,这里是指定的/bin/false
,这意味着这个用户不能登录shell,通常用于运行服务的用户。
mysql
是你要创建的用户名。
创建一个文件夹。这个就不解释了。
mkdir data
给权限
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
是一条Linux命令,用于改变文件系统中的文件和目录的所有者。这个命令的每个参数的含义如下:
chown
:这个命令是“change owner”的简称,用于改变文件或目录的所有者。-R
:这个参数表示递归地改变指定目录及其所有子目录和文件的所有者。mysql:mysql
:这表示新的所有者是用户mysql
,所属组也是mysql
。/usr/local/mysql
:这是你想要改变所有者的目录。
这条命令的作用是将/usr/local/mysql
目录及其所有内容的所有者更改为mysql
用户,并且将所属组也设置为mysql
组。
cd /usr/local/mysql
mkdir /usr/local/mysql/data
./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
用于初始化 MySQL 数据库安装。这通常在安装过程中或设置新的 MySQL 实例时执行。下面解释每个选项:
--user=mysql
:这个选项指定了 MySQL 服务器应以mysql
用户运行。这是之前使用useradd -r -g mysql -s /bin/false mysql
命令创建的用户。--basedir=/usr/local/mysql
:这个选项告诉 MySQL 服务器其自身文件(如二进制文件、配置文件和插件)的位置。在这个例子中,基本目录设置为/usr/local/mysql
。--datadir=/usr/local/mysql/data
:这个选项指定了实际数据库文件将被存储的目录。在这个例子中,data
目录是mysql
安装目录(/usr/local/mysql
)的一个子目录。--initialize
:这个选项初始化数据库。它创建初始数据库文件,并设置第一个超级用户账户,以及其他一些设置。这是在首次安装 MySQL 服务器时执行的一次性操作。
请记住,运行完成后,有个密码,像此处的密码就是 q#lknTosf8f- 复制出来,后面会用到
修改配置文件:
sudo vim /etc/my.cnf
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
lower_case_table_names = 1
bind-address = 0.0.0.0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
[client]
socket=/usr/local/mysql/mysql.sock
default-character-set=utf8
[mysqld] 节
character_set_server=utf8
:设置服务器默认字符集为 UTF-8。UTF-8 是一种广泛使用的字符集,能够支持多种语言的字符。init_connect='SET NAMES utf8'
:在客户端连接到服务器时,自动设置客户端的字符集为 UTF-8。basedir=/usr/local/mysql
:指定 MySQL 服务器的基本目录,即 MySQL 安装的位置。datadir=/usr/local/mysql/data
:指定 MySQL 数据库数据的存储目录。socket=/usr/local/mysql/mysql.sock
:设置 MySQL 服务器的套接字文件路径。套接字是网络通信的一种机制,用于在本地计算机上的不同程序之间进行通信。lower_case_table_names = 1
:设置表名和列名不区分大小写。这在某些情况下有助于兼容性,但通常建议在创建表和列时使用小写字母,以保持一致性。bind-address = 0.0.0.0
:允许 MySQL 服务器接受来自任何 IP 地址的连接。这通常在开发和测试环境中使用,但在生产环境中,你可能会想要限制它只接受来自特定 IP 地址的连接。
[mysqld_safe] 节
log-error=/var/log/mysqld.log
:设置 MySQL 服务器错误日志的路径。这个日志文件用于记录 MySQL 服务器运行时出现的错误。pid-file=/usr/local/mysql/data/mysqld.pid
:设置 MySQL 服务器进程 ID 文件的路径。这个文件包含了 MySQL 服务器的进程 ID,可以在服务器启动和停止时使用。
[client] 节
socket=/usr/local/mysql/mysql.sock
:指定客户端连接到 MySQL 服务器时使用的套接字文件路径。这个设置通常与[mysqld]
节中的socket
设置相同。default-character-set=utf8
:设置客户端默认的字符集为 UTF-8。这与服务器端设置相匹配,确保客户端与服务器之间的字符集一致。
这些设置有助于确保 MySQL 服务器和客户端之间的通信顺畅,并且数据以正确的字符集存储和传输。
cp ./support-files/mysql.server /etc/init.d/mysqld
cp ./support-files/mysql.server /etc/init.d/mysqld
的作用是将 MySQL 安装包中的启动脚本mysql.server
复制到系统的初始化脚本目录/etc/init.d/
中,并重命名为mysqld
。
sudo vim /etc/init.d/mysqld
使用 ? 找到 basedir 设置具体如下图
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
设置开机自启
sudo systemctl enable mysqld
sudo systemctl enable mysqld
是用于在支持 Systemd 的 Linux 系统上将 MySQL 服务设置为开机自启。
配置mysql 的环境变量
sudo vim /etc/profile
/etc/profile
:是 Linux 系统中的一个重要文件,是所有用户登录时执行的个人配置脚本的父脚本。它主要用于设置系统的环境变量,这些环境变量会影响系统中的所有用户。
export PATH=$PATH:/usr/local/mysql/bin
立即生效最新的环境变量
source /etc/profile
重启服务
service mysqld restart
验证安装
mysql -uroot -p
如果发现报错:mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
执行下面安装修复。
sudo apt-get install libncurses5
输入之前记录下的密码:q#lknTosf8f-
修改密码
我这里用 123456 作为密码,大家记得自己修改
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;
测试
更改完成后,使用工具测试连接。没有问题