mysql官方安装教程
在线安装
1. 检查系统本身是否有预装的mysql
1.rpm -qa | grep mysql #检查是否安装了mysql
2.rpm -qa | grep mariadb #检查是否安装了mariadb
3.rpm -e xxx #一般使用此命令即可卸载成功
4.rpm -e --nodeps xxx #卸载不成功时使用此命令强制卸载)
2.安装MySql
1.wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
//下载mysql的rpm的包
2.yum -y install mysql57-community-release-el7-10.noarch.rpm
3.yum -y install mysql-community-server
3.进入Mysql
1.生成初始密码,我在这里并没有生成初始密码,所以我直接把vim /etc/my.cnf
文件最后面加入skip-grant-tables
保存文件退出, 使用systemctl restart mysqld
重启服务器, 使用下面的命令查看生成的密码;
grep "password" /var/log/mysqld.log
再次修改vim /etc/my.cnf
, 注释掉skip-grant-tables
, 退出免密登录. 不然后面无法修改密码.
2.登录mysqlmysql -uroot -p
mysql -uroot -p
enter your password: 上面获取的初始密码
提示 如果你设置不验证登录只需要mysql
回车就好了
3.修改Mysql的root用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
提示这里密码遵守mysql
的安全策略(大写英文,小写英文,数字,特殊字符),不然会报错的,虽然可以进行更改,但是不建议更改,这样安些 如果要更改的话
set global validate_password_policy=0;
set global validate_password_length=6;
4.测试登录
看密码是否生效(如果你更改了配置文件下的数据,先把
skip-grant-tables
)用#
号注释掉,然后service mysqld restart
对服务进行重启
mysql -uroot -p
>>输入你设置的密码
4.设置Mysql远程登陆 (前提:进入到数据库里面)
use mysql;
update user set host='%' where user='root' and host='localhost';
//这里的%是允许所有的ip地址登录这个服务器的mysql服务器
flush privileges;
//刷新权限
然后退出mysql
firewall-cmd --permanent --add-port=3306/tcp //防火墙开发3306端口
>>success//显示成功
firewall-cmd --reload
>>success//显示成功
查看防火墙的状态
systemctl status firewalld
如果是running
就是启动的,如果是dead
就是关闭,systemctl start firewalld
进行启动
这里有的不支持这个命令需要service iptables status
进行查看防火墙的状态.
5.使用远程连接
使用软件对mysql进行连接(推荐使用Navicat)这个软件是真的好进行连接
[本教程参考了] : https://www.jianshu.com/p/3b613d4491bf
离线安装
安装依赖
yum -y install libaio
创建用户和组
新建mysql用户和组, 用于设置mysql安装目录文件所有者和所属组
groupadd mysql
useradd -r -g mysql mysql
注:
- 1.
useradd -r
表示mysql用户是系统用户, 不可用于登录系统 - 2.
useradd -g
表示把mysql用户添加到mysql用户组中
下载mysql安装包
mysql下载地址
当然也可以使用迅雷或者其他方式下载后再上传到服务器
解压并创建data目录
- 1.解压到指定目录, 并重命名文件夹
tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.32-linux-glibc2.12-x86_64 /usr/local/mysql
- 2.进入mysql目录,并创建
tmp, log, data
文件夹
cd /usr/local/mysql
mkdir tmp log data
- 3.确保mysql下的文件属主都为mysql(下面的命令是在mysql目录下执行的)
chown -R mysql:mysql /usr/local/mysql/
初始化mysql配置表
cd /usr/local/mysql/ # 进入到mysql目录
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data # 初始化
--user 启动mysql的用户
--basedir mysql 的安装目录
--datadir mysql数据仓库目录
注意
初始化完成后, 注意最后一行, 可能不同的版本出现的位置不一样, 它给出了root的初始密码, 后面登录的时候要这个密码
[Note] A temporary password is generated for root@localhost: Oow7Fi=lb#dO
例如我的初始密码就是Glly__T!=1z4
我们也可以吧初始化的密码保存到一个临时文件中
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data > /tmp/mysql.pwd
开启加密连接
bin/mysql_ssl_rsa_setup
权限归还
将mysql/目录下除了data、tmp、log目录的所有文件,改回root用户所有,mysql用户只需作为mysql/data/目录下所有文件的所有者
cd /usr/local/mysql/
chown -R root:root ./
# 将 data tmp 和 log还是给mysql用户
chown -R mysql:mysql data
chown -R mysql:mysql tmp
chown -R mysql:mysql log
开机自启
- 1.复制
mysql.server
文件到/etc/init.d/mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
- 2.添加环境变量
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile.d/mysql.sh
- 3.刷新配置
source /etc/profile
- 4.设置开机自启
chkconfig mysql on
service mysql start
更改密码
使用如下命令更改密码
mysql --connect-expired-password -uroot -pGlly__T!=1z4 -e "set password for root@localhost = password('123456')"
由于我的系统是centos8.0
在更改密码的时候, 会报如下的错误
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
需要我们安装依赖
yum install libncurses*
等待安装完毕, 再次运行
[root@localhost ~]# mysql --connect-expired-password -uroot -pGlly__T!=1z4 -e "set password for root@localhost = password('123456')"
mysql: [Warning] Using a password on the command line interface can be insecure.
至此密码修改完成.
自定义mysql启动参数
- 1.
vim /etc/my.cnf
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
basedir = /usr/local/mysql
socket = /tmp/mysql.sock
datadir = /usr/local/mysql/data
character_set_server = utf8
collation_server = utf8_general_ci
default_storage_engine = MyISAM
skip-external-locking
key_buffer_size = 64M
max_allowed_packet = 100G
table_open_cache = 256
sort_buffer_size = 1M
net_buffer_length = 4K
read_buffer_size = 1M
read_rnd_buffer_size = 256K
myisam_sort_buffer_size = 16M
thread_cache_size = 32
query_cache_size = 32M
tmp_table_size = 64M
#skip-name-resolve
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
expire_logs_days = 10
slow_query_log=1
slow-query-log-file=/usr/local/mysql/log/mysql-slow.log
long_query_time=3
#log_queries_not_using_indexes=on
innodb_data_home_dir = /usr/local/mysql/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/data
innodb_buffer_pool_size = 256M
innodb_log_file_size = 128M
innodb_log_buffer_size = 32M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 500M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 64M
sort_buffer_size = 1M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
注意
如果你安装的mysql 不是在/usr/local/mysql下 , 还需要修改
/etc/init.d/mysqld
文件
mysqld_pid_file_path=
if test -z "$basedir"
then
basedir=/usr/local/mysql
bindir=/usr/local/mysql/bin
if test -z "$datadir"
then
datadir=/usr/local/mysql/data
fi
sbindir=/usr/local/mysql/bin
libexecdir=/usr/local/mysql/bin
else
大约在62行, 把basedir, datadir, bindir, sbindir,libexecdir , 修改成自己对应的路径