注意:mysql8.3 使用了更高版本的依赖库
安装依赖包
[root@localhost ~] yum install -y gcc-c++ make cmake3 bison ncurses-devel openssl-devel openssl
[root@localhost ~] yum install centos-release-scl
[root@localhost ~] yum install devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils
下载源码包并编译
[root@localhost ~] wget https://cdn.mysql.com//Downloads/MySQL-8.3/mysql-boost-8.3.0.tar.gz
[root@localhost mysql-8.3.0]# cmake3 .
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_BOOST=boost/boost_1_77_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/usr/local/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 -DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
[root@localhost mysql-8.3.0]# make -j 2
[root@localhost mysql-8.3.0]# make install
创建目录
[root@localhost mysql-8.3.0]# mkdir /usr/local/{tmp,log,data}
授权
[root@localhost mysql-8.3.0]# useradd -s /sbin/nologin -M mysql
[root@localhost mysql-8.3.0]# chown mysql.mysql -R /usr/local/{mysql,tmp,log,data}
编写配置文件
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql #安装目录
datadir = /usr/local/data #数据存放目录
tmpdir = /usr/local/tmp #/tmp缓存目录
socket = /usr/local/tmp/mysql.sock #指定socket文件的位置
pid_file = /usr/local/tmp/mysqld.pid #指定pid文件的位置
log_error = /usr/local/log/mysql_error.log #错误日志的位置
slow_query_log_file = /usr/local/log/slow_warn.log #慢日志查询
server_id = 1 #server-id=??
user = mysql #指定用户
port = 3306 #指定端口
bind-address = 0.0.0.0 #监听地址(允许所以ip访问)
character-set-server = utf8 #字符集
default_storage_engine = InnoDB #引擎
default-authentication-plugin=mysql_native_password
初始化及启动
[root@localhost mysql]# ./bin/mysqld --defaults-file=/etc/my.cnf --initialize --user='mysql'
[root@localhost mysql]# cat ../log/mysql_error.log
2024-03-23T00:34:54.408924Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2024-03-23T00:34:54.410320Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.3.0) initializing of server in progress as process 51042
2024-03-23T00:34:54.411435Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
2024-03-23T00:34:54.415112Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-03-23T00:34:54.568295Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-03-23T00:34:55.248041Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rEklmGr4tv!O
2024-03-23T00:34:56.873022Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.
[root@localhost mysql]# ./bin/mysqld --defaults-file=/etc/my.cnf
[root@localhost mysql]# ss -tnlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:* users:(("sshd",pid=915,fd=3))
LISTEN 0 128 *:3306 *:* users:(("mysqld",pid=51844,fd=22))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=915,fd=4))
LISTEN 0 70 [::]:33060 [::]:* users:(("mysqld",pid=51844,fd=20))
MySQL 默认 TCP 端口号:
1、3306 用于 MySQL Classic 协议(服务器端口选项)
2、33060 用于 MySQL X 协议(服务器 mysqlx_port 选项)
3、33062 用于使用 MySQL Classic 协议的管理连接(服务器 admin_port 选项)
修改密码
[root@localhost mysql]# ./bin/mysqladmin -uroot -p'rEklmGr4tv!O' password 'QianFeng@123'
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
测试连接
[root@localhost mysql]# ./bin/mysql -uroot -pQianFeng@123
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.3.0 Source distribution
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
配置环境变量及启动方式
配置环境变量
[root@localhost ~]# echo 'export PATH=$PATH:/usr/local/mysql/bin' > /etc/profile.d/mysql.sh
配置启动方式
[root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]# systemctl daemon-reload
Comments | NOTHING