1.解压tar包
cd /software
tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21
2.添加用户与组
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql mysql-5.6.21
3.安装数据库
su mysql
cd mysql-5.6.21/scripts
./mysql_install_db --user=mysql --basedir=/software/mysql-5.6.21 --datadir=/software/mysql-5.6.21/data
exit
如果这里出现错误,可能
缺少共享库文件
安装共享文件库
yum install -y libaio
4.配置文件
cd /software/mysql-5.6.21/support-files
cp my-default.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysql
vim /etc/init.d/mysql
#若mysql的安装目录是/usr/local/mysql,则可省略此步
修改文件中的两个变更值
basedir=/software/mysql-5.6.21
datadir=/software/mysql-5.6.21/data
datadir=/software/mysql-5.6.21/data
5.配置环境变量
vim /etc/profile
export MYSQL_HOME="/software/mysql-5.6.21"
export PATH="$PATH:$MYSQL_HOME/bin"
保存退出
. /etc/profile
6.添加自启动服务
chkconfig --add mysql
chkconfig mysql on
7.启动mysql
service mysql start
8.登录mysql及改密码与配置远程访问
mysqladmin -u root password 'your_password'
#修改root用户密码
mysql -u root
-p
#登录mysql,需要输入密码
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
#允许root用户远程访问
mysql>FLUSH PRIVILEGES;
#刷新权限
mysql>exit
---------------------------2014/11/25 添加
又装了一次此版本的mysql,发现root用户不能登录,提示没权限。使用mysqld_safe 登进去,发现user表居然是空的,没有一个用户,郁闷。
于是从其它地方导出了一份user表的sql语句,手动插入了一个用户,再登录就可以了。
附:
忘记root密码后,如何找回密码
cd $MYSQL_HOME
./bin/mysqld_safe --basedir=/data/mysql-5.6.21 --datadir=/data/mysql-5.6.21/data --skip-grant-tables &
mysql -u root mysql
UPDATE user SET password=PASSWORD("new_password") WHERE user='root';
FLUSH PRIVILEGES;
mysql -u root mysql
UPDATE user SET password=PASSWORD("new_password") WHERE user='root';
FLUSH PRIVILEGES;
-----------------------------------安装mysql 5.6.38版本
使用./mysql_install_db --user=mysql --basedir=/opt/mysql/mysql-5.6.38 --datadir=/opt/mysql/mysql-5.6.38/data 初始化数据
出现:
FATAL ERROR: please install the following Perl modules before executing ./mysql_install_db:
Data::Dumper
解决:
yum install -y perl-Module-Install.noarch
初始化数据时出现:
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details)
为了显示指定默认值为timestamp的字段
解决:在my.cnf配置文件上加入
explicit_defaults_for_timestamp=true
使用bin/mysql_secure_installation工具来进行安全配置,会删除匿名账号