Mysql 版本:
rpm 包
二进制包
源码包
一、rpm
mysql.i386
mysql-devel.i386
mysql-server.i386
1、
# yum install mysql mysql-server mysql-devel
服务端:/usr/libexec/mysqld
客户端: /usr/bin/mysql
启动脚本: /usr/bin/mysqld_safe
建立帐号: mysql
2、
# vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql 数据存放的目录
socket=/var/lib/mysql/mysql.sock 套接字生成的路径
user=mysql 运行的身份
[mysqld_safe]
log-error=/var/log/mysqld.log 错误日志
pid-file=/var/run/mysqld/mysqld.pid
mysql启动流程
mysqld服务器端进程初始化---> 读取配置文件my.cnf---> 根据配置文件读取数据--->根据配置文件生成socket文件--->生成其他的文件
# /usr/libexec/mysqld --verbose --help | head -15
...
Default options are read from the following files in the given order:
/etc/my.cnf ~/.my.cnf
3、启动
# service mysqld start
首次启动:
初始化数据文件,在数据目录生成这些文件
手工去修改mysql管理员密码
/usr/bin/mysqladmin -u root password '123'
/usr/bin/mysqladmin -u root -h station254.example.com password '123'
4、客户端登录测试
本地socket文件
# mysql -u root -p123
或
# mysql -u root -p123 -S /var/lib/mysql/mysql.sock
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
通过tcp/ip协议登录
# mysql -u root -p123 -h 127.0.0.1 -P 3306
或
# mysql -u root -p123 -h station254.example.com -P 3306
mysql> select user,host,password from mysql.user;
+------+------------------------+------------------+
| user | host | password |
+------+------------------------+------------------+
| root | localhost | 773359240eb9a1d9 | socket文件登录
| root | station254.example.com | | tcp/ip
| root | 127.0.0.1 | | tcp/ip
+------+------------------------+------------------+
mysql关闭
1、service mysqld stop
2、
# mysqladmin -u root -p123 -S /var/lib/mysql/mysql.sock shutdown
3、直接结束进程,强烈不推荐
找到mysqld_safe(如果存在就在,不存在就不用找)和mysqld进程,解释kill -9 #PID #PID
其他方式启动
# mysqld_safe --defaults-file=/etc/my.cnf &
需要注意的细节:
相关目录是否存在?
数据目录,socket生成路径,其他文件保存的目录
权限是否正确?
mysql用户具有读写执行权限
遇到问题找错误日志。
忘记密码怎么办?
1、把原来的mysql停止
2、启动
# mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables &
不需要密码就可以登录数据库
3、登录修改密码
# mysql -u root -S /var/lib/mysql/mysql.sock
mysql> update mysql.user set password=password('123') where user='root' and host='127.0.0.1';
mysql>flush privileges;
4、重启mysql,让其恢复需要密码验证的状态
============================================
Mysql 二进制包安装
1、解压
mysql-5.1.54-linux-i686-glibc23.tar.gz
2、移动
# mv mysql-5.1.54-linux-i686-glibc23 /usr/local/mysql
3、编写配置文件
[mysqld]
datadir=/data-binary
socket=/data-binary/mysqld.sock
user=mysql
port=3306
[mysqld_safe]
log-error=/data-binary/mysqld.err
pid-file=/data-binary/mysqld.pid
4、如果不存在mysql用户,就需要建立
5、建立相关目录,修改权限
6、初始化数据文件
# cd /usr/local/mysql
# ./scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql
7、启动,改密码
# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
# mysqladmin -u root -S /data-binary/mysqld.sock password '123'
登录测试
=============================================
源码包安装
mysql-5.1.54.tar.gz
1、解压
[root@bd ]# tar xf mysql-5.1.54.tar.gz -C /usr/src/
[root@bd ]# cd /usr/src/mysql-5.1.54/
[root@bd mysql-5.1.54]# yum -y install ncur*
2、编译安装(参数是按照生产的要求来添加)这里只是做范例。
# ./configure --prefix=/usr/local/mysql --enable-assembler --enable-profiling --enable-local-infile --with-charset=utf8 --with-extra-charsets=gb2312,gbk --with-low-memory --with-big-tables --with-plugins=myisam,innobase,heap
# make && make install
3、建立配置文件
[mysqld]
datadir=/data
socket=/data/mysqld.sock
port=3306
user=mysql
[mysqld_safe]
log-errot=/data/mysqld.err
pid-file=/data/mysqld.pid
4、建立用户,建立目录,修改权限
[root@bd ~]# mkdir /data
[root@bd ~]# useradd -s /sbin/nologin mysql
[root@bd ~]# chown mysql.mysql /data/
5、初始化数据
# /usr/local/mysql/bin/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql
6、启动,修改密码
# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
# /usr/local/mysql/bin/mysqladmin -u root -S /data/mysqld.sock password '123'
# /usr/local/mysql/bin/mysql -u root -p123 -S /data/mysqld.sock
让其支持service指令启动:
# cp /usr/src/mysql-5.1.54/support-files/mysql.server /etc/rc.d/init.d/mysql5
# chmod 775 /etc/rc.d/init.d/mysql5
# service mysql5 start
mysql> create database uplooking;
mysql> use uplooking;
mysql> create table user (id int,name varchar(16));
mysql> insert into user values (1,'tom'),(2,'mary');
mysql> select * from user;
+------+------+
| id | name |
+------+------+
| 1 | tom |
| 2 | mary |
+------+------+