Linux普通用户无root权限安装MySQL 8.0.36


Linux版本:Ubuntu 22.04

MySQL版本:8.0.36

用户名:czhang

安装路径:/home/czhang/mysql-8.0.36

一、下载安装包

进入MySQL官网(MySQL下载官网 )下载社区通用版 MySQL Community Server

MySQL官网截图

二、解压并安装

1、上传MySQL到服务器并解压:

$ tar -xvf mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz

将所有文件放在了 /home/czhang/mysql-8.0.36 路径下,文件名太长可以进行重命名

2、创建编辑my.cnf配置文件(最初没有该文件)

在当前MySQL安装目录下,依次执行以下命令:

$ cd mysql-8.0.36
$ vim my.cnf	      #编辑配置文件

3、编辑my.cnf文件

[client]
port=3306					         #服务端口
socket=/home/czhang/mysql-8.0.36/mysql.sock		 #指定套接字文件

[mysqld]
# skip-grant-tables          #跳过root的密码验证
port=3306					         #服务端口
basedir=/home/czhang/mysql-8.0.36			 #mysql安装路径
datadir=/home/czhang/mysql-8.0.36/data                   #数据目录
pid-file=/home/czhang/mysql-8.0.36/mysql.pid		 #指定pid文件
socket=/home/czhang/mysql-8.0.36/mysql.sock		 #指定套接字文件
log_error=/home/czhang/mysql-8.0.36/error.log            #指定错误日志
server-id=100                                            #Mysql主从唯一标识

4、安装启动MySQL

4.1 安装

依次执行以下命令,指定配置文件安装并初始化mysql,没有报错即安装成功,返回了任何信息即为安装失败

$ cd bin
$ ./mysqld --defaults-file=/home/czhang/mysql-8.0.36/my.cnf --initialize --user=czhang --basedir=/home/czhang/mysql-8.0.36 --datadir=/home/czhang/mysql-8.0.36/data		#安装并初始化mysql

4.2 启动

依次执行以下命令,没有报错并能成功监听3306端口即表示启动成功

$ ./mysqld_safe --defaults-file=/home/czhang/mysql-8.0.36/my.cnf --user=czhang &      #启动mysql
$ netstat -tln | grep 3306		                         #查看是否成功监听3306端口

四、登录MySQL

1、获取初始密码

初始密码在安装根目录下的error.log文件中

2、登录MySQL

登录时需要指定mysql.sock文件启动,不然会报错。执行以下命令:

$ ./mysql -u root -p -S /home/czhang/mysql-8.0.36/mysql.sock 	#指定sock文件登录

3、修改密码

成功登入mysql后,修改登录密码,执行以下sql语句:

USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';  --设置登录密码为123456
flush privileges;

4、退出MySQL

可以在终端中执行以下shell命令关闭MySQL:

mysqladmin -u root shutdown

或者在MySQL中执行SQL语句退出:

SHUTDOWN; EXIT;

至此,MySQL安装完成

五、常用MySQL命令

使用sysbench对MySQL进行基准测试时可能用得上的MySQL命令:

1 查看指定数据库的容量大小

SELECT SUM(data_length + index_length) AS total_size_bytes,CONCAT(ROUND(SUM(data_length + index_length) / 1024 / 1024, 2), ' MB') AS total_size_mb FROM information_schema.TABLES WHERE table_schema = 'sysbench_test';

显示结果示例如下:
数据库容量大小

2 查看指定数据库中各表的大小

SELECT table_name,data_length + index_length AS size_bytes,CONCAT(ROUND((data_length + index_length) / 1024 / 1024, 2), ' MB') AS size_mb FROM information_schema.TABLES WHERE table_schema = 'sysbench_test' ORDER BY size_bytes DESC;

显示结果示例如下:

数据库各表大小

3 查看数据库各表中的记录数量

SELECT 
     t1.table_name, 
     COALESCE(t2.row_count, 0) AS record_count
FROM 
     information_schema.tables t1
LEFT JOIN (
    SELECT 
        table_name, 
        table_rows AS row_count
    FROM 
        information_schema.tables 
    WHERE 
        table_schema = 'sysbench_test' AND table_type = 'BASE TABLE'
) t2 ON t1.table_name = t2.table_name
WHERE 
     t1.table_schema = 'sysbench_test' AND t1.table_type = 'BASE TABLE';

显示结果示例如下:

数据库各表记录数大小

六、常用cmd命令

显示包含“mysql”的进程

ps -eo pid,psr,user,cmd | grep mysql

Reference

1

2

3

4


文章作者: Antonio
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Antonio !
  目录