1、mysql官网下载需要的版本
本人下载5.7
mysql-5.7.25-el7-x86_64.tar
2、上传到centos服务器上
scp .../.../mysql-5.7.25-el7-x86_64.tar root@123.123.123.123:/home/mysql57.tar
3、解压并
#tar -xvf mysql57.tar
或
#tar xvf mysql57.tar -C /opt/software
#ll
mysql-5.7.25-el7-x86_64.tar.gz
mysql57.tar
mysql-test-5.7.25-el7-x86_64.tar.gz#tar xvf mysql-5.7.25-el7-x86_64.tar.gz
mysql-5.7.25-el7-x86_64/bin/myisam_ftdump
mysql-5.7.25-el7-x86_64/bin/myisamchk
mysql-5.7.25-el7-x86_64/bin/myisamlog
mysql-5.7.25-el7-x86_64/bin/myisampack
mysql-5.7.25-el7-x86_64/bin/mysql
mysql-5.7.25-el7-x86_64/bin/mysql_client_test_embedded
mysql-5.7.25-el7-x86_64/bin/mysql_config_editor
mysql-5.7.25-el7-x86_64/bin/mysql_embedded
mysql-5.7.25-el7-x86_64/bin/mysql_install_db
mysql-5.7.25-el7-x86_64/bin/mysql_plugin
mysql-5.7.25-el7-x86_64/bin/mysql_secure_installation
mysql-5.7.25-el7-x86_64/bin/mysql_ssl_rsa_setup
mysql-5.7.25-el7-x86_64/bin/mysql_tzinfo_to_sql
mysql-5.7.25-el7-x86_64/bin/mysql_upgrade
mysql-5.7.25-el7-x86_64/bin/mysqladmin
mysql-5.7.25-el7-x86_64/bin/mysqlbinlog
4、转移解压文件
# mv mysql-5.7.25-el7-x86_64 /home/mysql
# cd /home/mysql
# vi support-files/mysql.server 配置基础路径和数据路径
# mkdir data 数据文件目录
# yum install libaio 解决mysql报错 缺少libaio.so.1
5、安装数据库
bin目录下
# ./mysql_install_db --user=root --basedir=/opt/softwares/mysql57/ --datadir=/opt/softwares/mysql57/data
2019-04-14 20:17:22 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2019-04-14 20:17:22 [ERROR] The data directory '/opt/softwares/mysql57/data' already exist and is not empty.
警告:mysql_install_db命令过时,新命令为 mysqld --initialize
错误:data目录下不空,需要清空
# ./mysqld --user=root --basedir=/home/mysql --datadir=/home/mysql/data --initialize
2019-04-14T12:34:24.487420Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-04-14T12:34:25.842841Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-04-14T12:34:25.981714Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-04-14T12:34:26.050629Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: a3b86e55-5eb1-11e9-8535-00163e13bb36.
2019-04-14T12:34:26.059288Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2019-04-14T12:34:26.059878Z 1 [Note] A temporary password is generated for root@localhost: 5uFeDrQS%aX!
记住临时密码 5uFeDrQS%aX!
6、启动数据库服务器
cd support-files
# ./mysql.server start
Starting MySQL.Logging to '/home/mysql/data/izbp1i0rqhtuqeu87eg9j5z.err'.
The server quit without updating PID file (/home/mysql/data[失败]i0rqhtuqeu87eg9j5z.pid).
[root@izbp1i0rqhtuqeu87eg9j5z support-files]# more /home/mysql/data/izbp1i0rqhtuqeu87eg9j5z.err
/home/mysql/data/izbp1i0rqhtuqeu87eg9j5z.err: 没有那个文件或目录
错误:实际是因为 data文件夹没有写的权限
groupadd mysql 创建用户分组mysql
useradd -g mysqlsql mysql 创建用户mysql添加到分组mysql
chown -R mysql:mysql /home/mysql/data
# support-files/mysql.server start
至此可以启动数据库了。
为了让数据库开机启动,需要将数据库服务添加到开机启动项里面
7、添加开机启动项
ln -s /home/mysql/bin/mysql /usr/bin/mysql
cp /home/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --list msyqld
chkconfig --add mysqld
chkconfig --level 345 mysqld on
chkconfig mysqld on
有的系统可以尝试systemctl ,本机不适用,如下
# systemctl enable mysqld
mysqld.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig mysqld on
8、连接数据并更改密码
#mysql -uroot -p5uFeDrQS%aX!
mysql> update user set password=PASSWORD('Hu********') where user='root';
ERROR 1046 (3D000): No database selected
mysql> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> use mysql;
正确的做法:
alter user 'root'@'localhost' identified by '*******';
Query OK, 0 rows affected (0.00 sec)
9、更改user配置,保证可以使用主机名访问
mysql> update user set host= '%' where user='root';
mysql> flush privileges;
10、授权新帐号数据库权限
create user 'username'@'%' identified by 'Hu******';
grant all privileges on *.* to 'newuser'@'%' ;
有时同时授予所有数据库反而不能成功 ,一个个授予权限反而能解决问题,如下:
grant all privileges on database1.* to 'newuser'@'%' ;
grant all privileges on database1.* to 'newuser'@'%' ;
最好加上下面语句强制刷新。
flush privileges
。