mysqld 8.0.17
占用磁盘空间330M
1:下载、解压
cyberx@xxx:~/soft$ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0
cyberx@xxx:~/soft$ tar -xvf mysql-8.0.17-linux-x86_64-minimal.tar.xz
2:移到/usr/local目录下
cyberx@xxx:~/soft$ sudo mv mysql-8.0.17-linux-x86_64-minimal /usr/local/mysql
cyberx@xxx:/usr/local$ sudo groupadd mysql
cyberx@xxx:/usr/local$ sudo useradd -r -g root mysql
3: 编译mysql配置文件
cyberx@xxx:~/soft$ sudo vi /etc/mysql/my.cnf
如果没有该文件就手动创建目录和文件
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql/mysql.sock
pid-file=/tmp/mysql/mysql.pid
symbolic-links=0
skip-grant-tables
[mysqld_safe]
log-error=/var/log/mysql/error.log
[client]
socket=/tmp/mysql/mysql.sock
!includedir /etc/mysql/conf.d/
cyberx@xxx:/usr/local/mysql$ sudo cp support-files/mysql.server /etc/init.d/mysql
vim /etc/init.d/mysql 修改设置
4:创建文件目录,增加权限
cyberx@xxx:/usr/local/mysql$ mkdir data
cyberx@xxx:/usr/local$ sudo chown root:mysql mysql -R
cyberx@xxx:/usr/local$ mkdir /tmp/mysql
cyberx@xxx:/usr/local$ sudo chown -R root:mysql /tmp/mysql
cyberx@xxx:/usr/local$ sudo chmod 777 /tmp/mysql -R
cyberx@xxx:/var/log$ sudo mkdir mysql
cyberx@xxx:/var/log$ sudo touch mysql/error.log
cyberx@xxx:/var/log$ sudo chown -R root:mysql mysql
cyberx@xxx:/var/log$ sudo chmod 777 mysql -R
cyberx@xxx:/var/log$ sudo mkdir /var/run/mysql
cyberx@xxx:/usr/local/mysql$ sudo chmod 777 /tmp/mysql/ -R
cyberx@xxx:/usr/local/mysql$ sudo chmod 777 /usr/local/mysql -R
5:初始化
cyberx@xxx:/usr/local/mysql$ sudo ./bin/mysqld --initialize --user=mysql
如果提示少库,可能是版本不匹配,通过软连接解决,如果没有库,直接下载安装
sudo ln -s /usr/lib/x86_64-linux-gnu/libncurses.so.6.3 /usr/lib/x86_64-linux-gnu/libncurses.so.5
sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 /usr/lib/x86_64-linux-gnu/libtinfo.5
sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6.3 /usr/lib/x86_64-linux-gnu/libtinfo.so.5
sudo apt-get install libaio1
cyberx@xxx:/usr/local/mysql$ sudo ./bin/mysqld --initialize --user=mysql
2024-12-12T12:54:55.305154Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2024-12-12T12:54:55.305212Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.17) initializing of server in progress as process 10704
2024-12-12T12:54:58.102637Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: >vBunt!5Iffm
2024-12-12T12:54:59.640254Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.17) initializing of server has completed
6:启动mysql服务
cyberx@xxx:/usr/local/mysql$ ./support-files/mysql.server restart
Shutting down MySQL
.. *
Starting MySQL
. *
7:连接,不知道ROOT密码,修改root密码
cyberx@xxx:/usr/local/mysql$ ./bin/mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
cyberx@iZ2ze7gbyjybb8kqis33rpZ:/usr/local/mysql$ sudo vim /etc/mysql/my.cnf
增加"skip-grant-tables"
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql/mysql.sock
pid-file=/tmp/mysql/mysql.pid
symbolic-links=0
skip-grant-tables
[mysqld_safe]
log-error=/var/log/mysql/error.log
[client]
socket=/tmp/mysql/mysql.sock
!includedir /etc/mysql/conf.d/
保存后,重启mysql
./support-files/mysql.server restart
直接免密登录mysql:
cyberx@xxx:/usr/local/mysql$ ./bin/mysql -uroot
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxx';
Query OK, 0 rows affected (0.01 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
8:使用刚才修改的密码登录,并更新配置,使能远程登录数据库
cyberx@iZ2ze7gbyjybb8kqis33rpZ:/usr/local/mysql$ ./bin/mysql -uroot -p
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select user,host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
mysql> use mysql;
Database changed
mysql> update user set host ='%' where user ='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0