创建用于执行mysql服务程序的帐号:
创建数据库程序和文件的目录,并设置目录的所属与所组:
安装Mysql服务程序(解压与编译过程已省略):
删除系统默认的配置文件:
生成系统数据库(生成信息已省略):
创建配置文件的软连接文件:
将mysqld服务程序添加到开机启动项:
basedir=/usr/local/mysql
datadir=/usr/local/mysql/var
重启mysqld服务程序:
Starting MySQL. SUCCESS!
把mysql服务程序命令目录添加到环境变量中(永久生效):
//在配置文件的最下面追加:
export PATH=$PATH:/usr/local/mysql/bin
将mysqld服务程序的库文件链接到默认的位置:
初始化mysqld服务程序:
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n] y
New password: 输入要为root用户设置的数据库密码.
Re-enter new password: 重复再输入一次密码.
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y(删除匿名帐号)
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y(禁止root用户从远程登陆)
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y(删除test数据库并取消对其的访问权限)
- Dropping test database...
- Removing privileges on test database...
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y(刷新授权表,让初始化后的设定立即生效)
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!
Cleaning up...
完成上述准备后,就可以动手安装MySQL数据库了.主要安装步骤如下:
① 禁用selinux
setenforce 0
yum install mysql-community-{libs,client,common,server}-*.rpm
systemctl start mysqld
添加:
[mysqld]
#可以在表中录入中文
explicit-defaults-for-timestamp
# 禁用当前密码认证策略,可以使用简单密码(生产环境不适用)
validate_password=0
systemctl restart mysqld
grep -i "temporary password" /var/log/mysqld.log
mysql -uroot -p 输入临时密码
①.0.修改root用户登录密码为简单密码(生产环境不适用)
①.1.配置MYSQL_PS1环境变量
修改家目录下:.bash_profile文件,添加
export MYSQL_PS1="\u@\h[\d]"
source /root/.bash_profile
mysql -uroot -p
rpm -qa|grep numactl
yum install numactl-libs-* # 如果没有安装需要安装.检查是否安装libaio包
rpm -qa|grep libaio
yum install libaio-* # 如果没有安装需要安装
具体安装步骤如下:
* 禁用selinux
* 上传安装文件到Linux
* 创建mysql用户组和用户
#-r创建系统账户,-M 不创建用户家目录 -N 不创建和用户名一样的用户组
id mysql
* 上传安装包到root家目录
* 解压二进制文件到/usr/local
* 解压目录改名为mysql
cd /usr/local
ls -l
* 环境变量中添加mysql/bin目录
vi /root/.bash_profile
修改PATH=/usr/local/mysql/bin:$PATH:$HOME/bin
添加 export MYSQL_PS1="\u@\h[\d]"
* 创建/usr/local/mysql/etc/my.cnf选项文件 (也可以使用默认的/etc/my.cnf选项文件)
mkdir -p /usr/local/mysql/etc
mkdir -p /usr/local/mysql/mysql-files
vi /usr/local/mysql/etc/my.cnf
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
log-error=/usr/local/mysql/data/mysqld.err
pid-file=/usr/local/mysql/data/mysqld.pid
secure_file_priv=/usr/local/mysql/mysql-files
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
Explicit-defaults-for-timestamp
[mysql]
* 初始化数据目录
cd /usr/local/mysql
mkdir data
chown mysql:mysql data
* 初始化数据库
bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --initialize
* 使用systemd管理mysql
例如:systemctl {start|stop|restart|status} mysqld
cd /usr/lib/systemd/system
touch mysqld.service
vi mysqld.service
# 添加以下内容
[Unit]
Description=MySQL Server
Documentation=
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/usr/local/mysql/data/mysqld.pid
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid $MYSQLD_OPTS
# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false
以上内容中注意:The --pid-file option specified in the my.cnf configuration file is ignored by systemd.
* 创建mysql.conf文件
cd /usr/lib/tmpfiles.d
#Add a configuration file for the systemd tmpfiles feature. The file is named mysql.conf and is placed in /usr/lib/tmpfiles.d.
touch mysql.conf
* mysql.conf添加内容
vi mysql.conf
添加以下语句:
* 使新添加的mysqld服务开机启动
systemctl enable mysqld.service
* 手动启动mysqld
systemctl status mysqld
* 获得mysql临时登录密码
cat /usr/local/mysql/data/mysqld.err | grep "temporary password"
输入临时密码
* 测试新密码连接MySQL服务
至此,我们就完成了在Linux环境下安装MySQL的任务.通过这两种方式我们可以体会到在Linux环境下安装软件的基本思路及方法.