Linux版本:Ubuntu 22.04
MySQL版本:8.0.36
用户名:czhang
安装路径:/home/czhang/mysql-8.0.36
一、下载安装包
进入MySQL官网(MySQL下载官网 )下载社区通用版 MySQL Community Server
二、解压并安装
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: