写在前面
本文一起看下如何在Linux环境中安装和配置MySQL服务器。
1:下载和解压
在这里 或者这里 下载安装包。然后解压到/usr/loca/mysql
目录下,解压后如下:
[root@localhost ~]# ll /usr/local/mysql/
total 272
drwxr-xr-x 2 mysql mysql 4096 Aug 23 11:04 bin
drwxr-xr-x 5 mysql mysql 4096 Aug 23 11:21 data
drwxr-xr-x 2 mysql mysql 55 Aug 23 11:04 docs
drwxr-xr-x 3 mysql mysql 4096 Aug 23 11:04 include
drwxr-xr-x 5 mysql mysql 230 Aug 23 11:04 lib
-rwxr-xr-x 1 mysql mysql 255074 Aug 23 11:04 LICENSE
drwxr-xr-x 4 mysql mysql 30 Aug 23 11:04 man
-rwxr-xr-x 1 mysql mysql 566 Aug 23 11:04 README
drwxr-xr-x 28 mysql mysql 4096 Aug 23 11:04 share
drwxr-xr-x 2 mysql mysql 90 Aug 23 11:04 support-files
2:创建MySQL用户以及权限修改
groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql /usr/local/mysql/
chown -R mysql /usr/local/mysql/
chmod -R 755 /usr/local/mysql/
3:初始化安装
3.1:创建数据目录
mkdir /usr/local/mysql/data
不要忘记修改权限:
chown -R mysql:mysql /usr/local/mysql/data
chown -R mysql /usr/local/mysql/data
chmod -R 755 /usr/local/mysql/data
3.2:初始化
[root@localhost local]# pwd
/usr/local
[root@localhost mysql]# bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
2022-08-23T03:14:06.400771Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
...
2022-08-23T03:14:06.887151Z 1 [Note] A temporary password is generated for root@localhost: 3h,H1dxvx6BI
3h,H1dxvx6BI
是默认的root密码,这里需要记录下,否则后续登录会遇到问题。
4:相关文件修改
4.1:配置文件
/etc/my.cnf
没有则创建:
[root@localhost local]# cat /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
basedir=/usr/local/mysql
user=mysql
port=3306
character-set-server=utf8
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
4.2:日志文件
因为在配置文件my.cnf
中我们设置了日志文件/var/log/mariadb/mariadb.log,因为不会自动创建,所以这里创建下。
touch /var/log/mariadb/mariadb.log
设置日志文件所有者为mysql和对应权限
chown -R mysql:mysql /var/log/mariadb/
chown -R mysql /var/log/mariadb/
chmod -R 755 /var/log/mariadb/
5:设置开机启动并启动
5.1:开机启动
[root@localhost mariadb]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@localhost mariadb]# chkconfig mysql on
5.2:启动并连接
[root@localhost mariadb]# service mysql start
Starting MySQL. SUCCESS!
[root@localhost mariadb]# /usr/local/mysql/bin/mysql -uroot -p
Enter password:
mysql>
登录后如果输入任何mysql 命令都是提示:You must reset your password using ALTER USER statement before executing this statement。我们必须使用命令alter user user() identified by "123456"; (此命令是在登录mysql后执行)
修改密码后才可以正常使用MySQL的功能。
5.3:允许远程连接
以下命令都是在登录mysql成功后执行
update user set host='%' where user = 'root';
使修改的权限立即生效。
flush privileges;
注意,在真实的生产环境中,并不建议这么修改,因为安全风险太大。建议根据实际情况将root用户的host项修改为某个指定的ip地址,或仍然保持localhost。
写在后面
参考文章列表: